在这种情况下如何进行MAVEN过滤?

时间:2017-06-01 02:55:12

标签: java maven

我有maven项目,其中包含Java类和Windows / Linux脚本。每当我对Java源代码进行一些更改时,我都会执行“mvn install'并调用这些脚本来测试我的更改。因此,这些脚本指向Maven存储库以查找JAR。例如,

SET app=%M2_REPO%\A\B\C\1.0-SNAPSHOT\C-1.0-SNAPSHOT.jar
SET app1=%M2_REPO%\E\F\G\1.0-SNAPSHOT\G-1.0-SNAPSHOT.jar
java -classpath !app!;!app1!;!app2!;!app3! !main_class! %1 %2 %3 %4

现在,要求是 1.将所有罐子和脚本打包成一个ZIP文件; 2. jars和scripts必须位于此ZIP文件的根级别。

我只是想知道是否可以自动设置应用

app=%M2_REPO%\A\B\C\1.0-SNAPSHOT\C-1.0-SNAPSHOT.jar

在编译阶段

并自动将其更改为

app=C-1.0-SNAPSHOT.jar

在安装阶段。

如果是,那怎么样?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你应该在两个不同的阶段使用maven-resources-plugin和两个独立的设置文件:

<executions>
    <execution>
        <id>compile-settings</id>
        <phase>process-resources</phase>
        <goals>
            <goal>copy-resources</goal>
        </goals>
        <configuration>
            <resources>
                <resource>
                    <directory>something</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <filters>
                <filter>resources/compile.properties</filter>
            </filters>
        </configuration>
    </execution>
    <execution>
        <id>package-settings</id>
        <phase>package</phase>
        <goals>
            <goal>copy-resources</goal>
        </goals>
        <configuration>
            <resources>
                <resource>
                    <directory>something</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <filters>
                <filter>resources/package.properties</filter>
            </filters>
        </configuration>
    </execution>
</executions>