Java 如何使用Maven将目录添加到JAR文件?
我试图用Maven将web应用程序打包为可运行的JAR文件。带有依赖项的jar程序集负责包含所有依赖项,但我仍然需要包含src/main/webapp 我设法用一个自定义程序集将目录添加到我的JAR中:Java 如何使用Maven将目录添加到JAR文件?,java,maven,jar,Java,Maven,Jar,我试图用Maven将web应用程序打包为可运行的JAR文件。带有依赖项的jar程序集负责包含所有依赖项,但我仍然需要包含src/main/webapp 我设法用一个自定义程序集将目录添加到我的JAR中: <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>webapp</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/webapp</directory>
<outputDirectory>/webapp</outputDirectory>
</fileSet>
</fileSets>
</assembly>
网络应用
罐子
假的
src/main/webapp
/网络应用
它确实可以工作,甚至可以将这个程序集与带有依赖项的jar一起使用。但是,最后一个JAR包含webapp目录和所有依赖项,但不包含我的项目的类文件。我的议会显然正在拆除它们
我可以在程序集中保留自己项目的类文件吗?或者是否有其他方法将目录添加到JAR?您的类将在${project.build.directory}/classes(/target/classes)中生成 因此,您应该使用该文件夹作为源目录 尝试将
src/main/webapp
更改为{project.build.directory}/classes
我的议会显然正在拆除它们
我猜是另一种方式,它没有添加它们
您的类文件位于target/classes内,它们需要位于target/webapp/WEB-INF/classes内。我猜你需要另一条这样的规则:
<fileSet>
<directory>target/classes</directory>
<outputDirectory>/webapp/WEB-INF/classes</outputDirectory>
</fileSet>
目标/类别
/webapp/WEB-INF/classes
或者,您可以在程序集描述符中添加以下内容。假设您的maven项目正在构建一个webapp,那么这不仅可以放置类文件,还可以放置webapp内容
...
<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
</dependencySet>
</dependencySets>
...
。。。
真的
...