没有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.propertiesdetails.properties ,其中包含名为cqm-full.jar依赖cqm-full.jar

更新

使用mvn install -Pgenerate-shaded-jar调用配置文件

现在来自src/main/resources资源文件不会添加到cqm-full.jar 。 如果在没有配置文件mvn clean install情况下调用,您仍然可以查看jar中的资源