【发布时间】:2020-11-23 17:18:47
【问题描述】:
我有一些与测试相关的类,我想从项目的已编译 jar 输出中排除这些类。这是一个遗留项目,我不想通过将类移动到 src/test 来丢失现有的修订历史。由于我已经在使用 build-helper-maven-plugin 我想我可以在那里指定一个排除模式,但到目前为止我没有尝试过似乎工作。我跑
mvn 全新安装包
在我的项目根目录中,我看到了日志消息
[INFO] --- build-helper-maven-plugin:3.0.0:add-source (add-source) @ Person-ejb --- [INFO] 源目录: /media/psf/Home/Documents/workspace/optics/optics/Person/ejb/src 已添加。
但是当我查看编译后的 jar 时,它仍然包含测试目录及其内容。知道我做错了什么吗?
我的 pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/</source>
</sources>
<excludes>
<exclude>**/test/**</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>add-reource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>resources/</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
【问题讨论】:
-
我不明白这一点:`我不想通过将类移动到 src/test 来丢失现有的修订历史。 ` 这正是版本控制系统打算记录的内容...将您的类/文件移动到正确的位置(
src/main/java和src/test/java和src/main/resources和 `src/test/resources 等);你可以摆脱 build-helper-maven-plugin ... 等等。 -
进一步阅读有关 maven 生命周期的信息,因为
mvn clean install package这意味着您正在重复运行几件事...仅使用mvn clean package...或者如果您有集成测试,请使用mvn clean verify,但请不要使用install... -
@khmarbaise install 命令只是剩下的。通常我通过 maven wildfly 插件运行东西,但我试图在较低级别运行东西以找出我的问题。
-
通过wildfly运行将无法正确处理事情......据我所知,wildfly插件仅用于部署?
-
@khmarbaise 只是为了澄清这段历史。如果我对文件执行 git mv 它会破坏监管链。我以后所做的任何更改都会被记录下来。但是,如果我想将更改与移动前的某个点进行比较,这是不可能的,因为 git 将移动的资源视为新文件。