如何将特定配置添加到Maven插件

时间:2013-10-16 15:32:40

标签: java eclipse maven protocol-buffers

在我的pom.xml中,我配置了一个插件,将某些Protobuf文件转换为Java类文件。它看起来像这样:

<plugin>
        <groupId>com.github.igor-petruk.protobuf</groupId>
        <artifactId>protobuf-maven-plugin</artifactId>
        <version>0.5.3-SNAPSHOT</version>
        <executions>
                 <execution>
                         <goals>
                                 <goal>run</goal>
                         </goals>
                 </execution>
        </executions>
        <configuration>
              <protocCommand>${basedir}/protoc/bin/protoc</protocCommand>
              <inputDirectories>
                    <inputDirectory>proto</inputDirectory>
              </inputDirectories>
        </configuration>
</plugin>

从这个Maven中生成.classpath文件,其中包含以下条目:

<classpathentry kind="src" output="target/classes" path="target/generated-sources/protobuf">
    <attributes>
        <attribute name="optional" value="true"/>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

我现在想要Maven做的是在该类路径条目中添加一个额外的“属性”条目,以便条目如下所示:

<classpathentry kind="src" output="target/classes" path="target/generated-sources/protobuf">
    <attributes>
        <attribute name="optional" value="true"/>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="ignore_optional_problems" value="true"/>
    </attributes>
</classpathentry>

就像那样,我不会从代码的那一部分得到警告。

此刻我只是不知道该怎么做。我必须编辑哪些文件或其他设置?在Eclipse中我可以这样做吗? 但这或多或少是关于如何修改Maven以包含自定义条目的一般性问题,因为我们还有一些我们想要添加自定义内容的位置。

3 个答案:

答案 0 :(得分:2)

Login and vote for this Feature-Request:

已有补丁,改进它。

答案 1 :(得分:0)

示例中的Eclipse配置由m2eclipse的项目配置生成,我很确定它现在不支持此类功能。虽然您可以尝试提交增强请求。见http://www.eclipse.org/m2e/support/

答案 2 :(得分:0)

不确定是否可以使用maven。你必须从maven调用ant插件。添加自定义逻辑以在Ant任务中添加额外的行。

在插件下添加ant插件,以确保在插件处于同一阶段后调用ant插件。确保ant插件与插件具有相同的相位。

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase><!--the same phase as protobuf-maven-plugin phase--></phase>
        <configuration>
          <tasks>

            <!--
              Add ant xmltask or ant other task to add your line to file
            -->

          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>