dur*_*597 5 java eclipse maven
为了让我的生活更轻松,我将我的maven配置为将我部署的应用程序放在一个不同于/deploy
默认文件夹的文件夹()中(因此它不会混合classes/
,surefire-reports
目录等等).它工作正常,除了当我尝试运行时mvn clean
,它只删除jar并复制依赖项,但不删除复制的资源.
更新它似乎被删除,但随后立即被放回.它似乎与使用Eclipse有关Build Automatically
,但我不确定为什么更改Maven的配置会对Eclipse产生这种影响.结束更新
更新2目前,没有一个答案是正确的.这个问题显然与deploy
目录无关; 似乎maven-resources-plugin使Eclipse复制资源成为Build Automatically的一部分.但是我不知道如何在不停止使用maven-resources-plugin的情况下关闭它,并且在不停止使用Build Automatically的情况下,我将给予能够解释如何执行此操作的人的赏金.结束更新2
无论如何,我的目录看起来像这样:
my-app
|-- pom.xml
|-- src
| |-- main
| | |-- java
| | `-- resources
| | |-- script.sh
| | `-- config
| | `-- app.properties
| `-- test
| |-- java
| `-- resources
`-- deploy
|-- my-app.jar <----- This gets deleted correctly
|-- lib <----- This gets deleted correctly
| |-- dependency1.jar <----- This gets deleted correctly
| |-- dependency2.jar <----- This gets deleted correctly
|-- config <----- This DOES NOT get deleted correctly
| `-- app.properties <----- This DOES NOT get deleted correctly
`-- script.sh <----- This DOES NOT get deleted correctly
Run Code Online (Sandbox Code Playgroud)
这是我的pom
片段:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>my.main.Class</mainClass>
<packageName>my.main</packageName>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
<excludes>
<exclude><!-- the files I don't want in my jar --></exclude>
</excludes>
<outputDirectory>${basedir}/deploy</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/deploy/lib</outputDirectory>
<includeScope>compile</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/deploy</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>deploy</directory>
<includes>
<include>**/*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果有问题how to disable eclipse to run specific plugin
,您可以将其放入默认情况下处于活动状态的特定配置文件下
<project>
...
<profiles>
<profile>
<id>not-eclipse</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
...
</plugins>
</build>
</profile>
...
</project>
Run Code Online (Sandbox Code Playgroud)
并放置! not-eclipse
在 eclipse 项目的配置文件设置中
归档时间: |
|
查看次数: |
3558 次 |
最近记录: |