从maven源生成过滤资源:jar执行

时间:2017-02-23 15:28:42

标签: java gwt maven-resources-plugin gwt-maven-plugin maven-source-plugin

我想为我的项目生成一个source jar文件,所以我已经包含了maven-source-plugin。但是,我还使用资源过滤插件在我的项目的属性文件中设置版本号。当我生成最终的jar文件时,属性文件已被过滤并且版本已设置。但是在源jar中,仍然具有未经过滤的属性。我想source source插件也调用资源过滤。我怎么能这样做?

这是我的pom.xml的(部分)     

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

这里是我想要过滤的属性文件

version = ${project.version}

修改

为了澄清,我的问题的根源是我有另一个项目是使用这个库构建的GWT项目。 GWT项目的部分要求是,源代码也必须可用于将要编译到客户端javascript的任何内容。因此,此项目包含编译的jar和类路径中的源jar。

所以现在有两个具有相同包路径和名称的属性文件,一个存在于编译的jar中,另一个存在于sources jar中。

当我尝试读取此文件时,似乎从源jar中选择了属性文件,该文件尚未过滤。

1 个答案:

答案 0 :(得分:0)

通常情况下,您可以使用maven-source-plugin。但是,我在其文档中看到,您无法从其处理中删除src / main / resources,同时将target/classes添加到其处理周期(这是您为完成任务而需要执行的操作)

因此,我认为最好的办法是通过maven-assembly-plugin配置。