【发布时间】:2021-10-31 03:54:24
【问题描述】:
我希望在这里找到有关从 Maven 构建中排除某些文件的问题的帮助。
问题的本质我的 Java 应用程序中有一个包需要在一段时间内几乎完全从项目中排除(除了几个类)。这是它的结构。
$ tree ./ -d
./
├── controller
│ └── dto
│ ├── rq
│ │ └── dss
│ └── rs
├── dao
│ └── impl
├── jobs
├── model
└── service
├── dto
│ └── rq
│ └── clientprofile
└── impl
我尝试了以下解决方案,但都没有奏效:
1.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp-${app.face}</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webappf</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/java/com/<NDA>/<NDA>/server/<NDA>/</directory>
<filtering>false</filtering>
<excludes>
<exclude>controller/**</exclude>
<exclude>dao/**</exclude>
<exclude>jobs/**</exclude>
<exclude>model/**</exclude>
<exclude>service/dto/**</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
2.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp-${app.face}</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webappf</directory>
<filtering>true</filtering>
</resource>
</webResources>
<packagingExcludes>
WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/controller/**,
WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/dao/**,
WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/jobs/**,
WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/model/**,
WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/service/dto/**
</packagingExcludes>
</configuration>
</plugin>
3.
<!--Parent pom.xml-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<excludes>
<exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/controller/**/*.java</exclude>
<exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/dao/**/*.java</exclude>
<exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/jobs/**/*.java</exclude>
<exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/model/**/*.java</exclude>
<exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/service/dto/rq/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
<!--Child pom.xml-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration combine.self="override">
</configuration>
</plugin>
【问题讨论】:
-
这能回答你的问题吗? Maven: excluding java files in compilation
-
为什么具体需要“排除”? “排除”具体是什么意思?
-
如果您现在不想要它们,那么为什么不删除文件?只需删除它们。如果您以后再次需要它们,您仍然可以在历史记录中找到它们(您使用的是 VCS,对吗?)
-
一般来说,如果你不想编译类(正如已经建议的那样),只需删除它们?问题是,如果它们没有被编译,为什么它们是项目的一部分?除此之外,您使用的是非常旧版本的插件,而且给定的配置即使没有错误也是不好的做法......这看起来:
${basedir}/src/main/webapp-${app.face}老实说真的很奇怪?
标签: java maven maven-3 maven-plugin