在JBoss上发布时通过Maven插件复制文件

时间:2013-01-08 17:24:13

标签: java maven jboss applet

我想运行一个Java-Applet。 我使用JBoss服务器。 我用Maven。 我用Eclipse。 我使用Eclipse将我的Web存档在Enterprise Archive中部署到服务器上。

对于Applet,我需要Applet的.class文件位于applet.html的可访问文件夹中。 我的想法是将.class-从target-folder复制到我的Web-Archive的resources-folder。所以我将以下插件添加到Web-Maven-Project的pom.xml中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4</version>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
            <executions>
                <execution>
                    <id>copy-applet-related-classes</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>

                       <outputDirectory>${basedir}/target/LMS-Admin-Web-  0.0.1/resources/applet</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/target/classes/de/test/lms/applet</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我认为我搞砸了阶段和目标。当我的目标“安装”并在我的项目文件夹中执行“mvn clean install”时,它工作了一次。问题是当我在Eclipse中使用右键单击&gt;发布时。我不知道,目标是什么比。我尝试了很多,但它不适用于JBoss的独立/部署/ ...文件系统。 事实证明这对谷歌来说也很难。所以我要感谢任何想法,链接或其他帮助!

编辑: 我发现,当我发布时,目标文件夹中的classes-folder被编辑,但打包到WAR-File的WEB文件夹不是。也许我需要一个阶段,这是在包装之前?我明天要进一步调查。

2 个答案:

答案 0 :(得分:1)

在我的项目中,我还需要一个applet,需要将其复制到classes目录。唯一的区别是我将applet存储为工件(因此在jar中)。我正在使用process-resources阶段。在你的情况下也可能。

我会添加我的解决方案,以防您想要打包您的小程序。如果你想要sign it,那么你需要做什么。

            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.2</version>
                    <executions>
                        <execution>
                            <id>copy-signed-applet</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>mygroupid</groupId>
                                        <artifactId>myapplet</artifactId>
                                        <version>${myapplet.version}</version>
                                        <outputDirectory>${project.build.outputDirectory}/path/to/applet</outputDirectory>
                                        <destFileName>myapplet.jar</destFileName>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>

如果您使用的是Eclipse,则需要在pluginManagement中添加插件生命周期映射(如果您还没有)。确保目标copy有行动execute

                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            maven-dependency-plugin
                                        </artifactId>
                                        <versionRange>
                                            [2.2,)
                                        </versionRange>
                                        <goals>
                                            <goal>copy</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute/>
                                    </action>
                                </pluginExecution>
...

答案 1 :(得分:0)

您可以尝试使用Git Param插件:https://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin

它可以帮助你。