Java 将jar文件复制到webapp文件夹中的maven项目
我正在尝试将一些jar文件从web inf/lib文件夹复制到src/main/webapp/applet文件夹,这些都是必需的 存档小程序,以便jar文件出现在输出war文件中 我希望这个复制操作需要在maven构建期间执行 maven war插件,如下所示Java 将jar文件复制到webapp文件夹中的maven项目,java,eclipse,maven,jboss,applet,Java,Eclipse,Maven,Jboss,Applet,我正在尝试将一些jar文件从web inf/lib文件夹复制到src/main/webapp/applet文件夹,这些都是必需的 存档小程序,以便jar文件出现在输出war文件中 我希望这个复制操作需要在maven构建期间执行 maven war插件,如下所示 <webResources> <resource> <directory>src/main/webapp/WEB-INF/lib</directory>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF/lib</directory>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
<targetPath>${basedir}/src/main/webapp/applet</targetPath>
</resource>
</webResources>
[INFO] --- maven-war-plugin:2.6:war (default-war) @ myapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [myapp] in [C:\jboss_projects\myapp\src\main\webapp]
[INFO] Processing war project
[INFO] Copying webapp webResources [C:\jboss_projects\myapp\src/main/webapp/WEB-INF/lib] to [C:\jboss_projects\myapp\src\main\webapp]
[INFO] Webapp assembled in [999 msecs]
[INFO] Building war: C:\jboss_projects\myapp\target\myapp.war
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/webapp/applet</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>src/main/webapp/WEB-INF/lib</directory>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
下一次尝试是使用下面的maven资源插件
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF/lib</directory>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
<targetPath>${basedir}/src/main/webapp/applet</targetPath>
</resource>
</webResources>
[INFO] --- maven-war-plugin:2.6:war (default-war) @ myapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [myapp] in [C:\jboss_projects\myapp\src\main\webapp]
[INFO] Processing war project
[INFO] Copying webapp webResources [C:\jboss_projects\myapp\src/main/webapp/WEB-INF/lib] to [C:\jboss_projects\myapp\src\main\webapp]
[INFO] Webapp assembled in [999 msecs]
[INFO] Building war: C:\jboss_projects\myapp\target\myapp.war
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/webapp/applet</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>src/main/webapp/WEB-INF/lib</directory>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
maven资源插件
2.6
复制资源
验证
复制资源
${basedir}/src/main/webapp/applet
真的
src/main/webapp/WEB-INF/lib
真的
**/*jar先生
注意:在两次试验中,我都发现了在webapp中创建的小程序文件夹
更新项目时,但在生成过程中,该文件夹不可用
修改/创建
任何建议都将不胜感激。请不要将此标记为重复。我查找的每个参考都有助于如何从源文件复制到web inf/lib文件夹。
不是这个。检查下面的ant任务是否适合您
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>move-applet-jar-files</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="Copying jar files for applets">
<echo message="your jar file to be copied" />
<copy file="${source.dir}/abc.jar" tofile="${target.dir}/abc.jar" />
</target>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven antrun插件
1.7
移动小程序jar文件
准备包装
跑
wemu建议有效。这是如何配置它以从本地回购获取依赖JAR的
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<executions>
<execution>
<id>applet-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.xxx.yyy</groupId>
<artifactId>yyy</artifactId>
<version>1.0</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${basedir}/src/main/webapp/applet</outputDirectory>
<destFileName>yyy.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven依赖插件
${maven dependency plugin.version}
小程序依赖项
准备包装
复制
com.xxx.yyy
yyy
1
罐子
真的
${basedir}/src/main/webapp/applet
yyy.jar
我想你应该复制到输出(目标)文件夹,而不是源文件夹。@jeroen_de_schutter我应该用哪一个来尝试这个?war插件还是资源插件?此外,当package.war时,它只会查看src/main/webapp。它会查看目标文件夹吗?我会选择第三个选项:使用依赖插件:和复制目标。然后将其绑定到包阶段。复制jar文件时,打开筛选时需要小心,因为它们可能会损坏。过滤不会过滤复制的文件,而是过滤其内容。为什么不首先将文件放在所需文件夹中?@AleksandrM这是一个多模块项目。因此,我要复制的JAR…都是此项目的从属项目。因此,我无法将文件作为静态库放在文件夹中