没有target \ classes的Maven jar-with-dependencies(构建工件)
我想创建一个可执行jar(包含我的代码的所有* .class)。 但是,我不希望Jar包含编译期间在src / main / resources路径中的资源。
我的项目层次结构是:
project -src -main -resources -resources_setting.xml -target -classes -resources_setting.xml
我希望我的jar只包含main和依赖项的类,而不是target \ classes或inside资源中的资源。
我怎么做?
我正在使用maven-assembly-plugin,如下所示:
org.apache.maven.plugins maven-assembly-plugin jar-with-dependencies cqm.qa.Main package single
出于捆绑目的,我通常使用maven-shade-plugin
,设置如下所述。 它将与程序集插件一样工作。
generate-shaded-jar false src/main/resources ** org.apache.maven.plugins maven-shade-plugin package shade cqm.qa.Main . *:* log4j.properties details.properties cqm-full
在上面的配置中,我从最终jar中排除了log4j.properties
和details.properties
,其中包含名为cqm-full.jar
依赖cqm-full.jar
更新
使用mvn install -Pgenerate-shaded-jar
调用配置文件
现在来自src/main/resources
资源文件不会添加到cqm-full.jar
。 如果在没有配置文件mvn clean install
情况下调用,您仍然可以查看jar中的资源