1

我正在使用Build Helper Maven Plugin来构造一个属性,该属性是带有“-”代表“。”的版本......我将其配置如下:

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>build-helper-maven-plugin</artifactId>
   <version>1.10</version>
   <executions>
      <execution>
         <id>regex-property</id>
         <goals>
            <goal>regex-property</goal>
         </goals>
         <configuration>
            <name>webscript.version</name>
            <value>${project.version}</value>
            <regex>\.</regex>
            <replacement>-</replacement>
            <failIfNoMatch>false</failIfNoMatch>
         </configuration>
    </execution>
  </executions>
</plugin>

当我构建包含该${webscript.version}属性的资源时,这很好用(它们在文件中按预期正确替换),所以这是有效的:

<resource>
    <targetPath>./alfresco/site-webscripts/org/alfresco/aikau/${project.version}/webscripts</targetPath>
    <filtering>true</filtering>
    <directory>${basedir}/src/main/resources/webscripts</directory>
</resource>

但是,我遇到的问题是在项目中的其他任何地方使用该属性......我想要做的是将该属性用于目标文件夹,如下所示:

<resource>
   <targetPath>./alfresco/site-webscripts/customizations/${webscript.version}</targetPath>
   <filtering>true</filtering>
   <directory>${basedir}/src/main/resources/extension-webscripts</directory>
</resource>

使用此代码,创建的文件夹只是“${webscript.version}”而不是“1-0-66”(在当前版本为 1.0.66 的情况下)。

工作和不工作的例子都在同一个<build>元素中,所以我假设它们处于同一阶段。

有人可以建议我如何调整配置以使其正常工作,或者建议一种替代方法来替换“。” 将“-”作为在这种情况下有效的新属性?

4

2 回答 2

0

你可能使用gmaven-plugin的是 groovy maven 插件真的很强大

<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.4</version>
<executions>
  <execution>
    <id>change-properties</id>
    <phase>initialize</phase>
    <goals>
      <goal>execute</goal>
    </goals>
    <configuration>
      <source>
        if (something) {
            project.properties.myProperty = 'myPropertyValue'
        }
      </source>
    </configuration>
  </execution>
</executions>

这里是另一个例子

希望这可以帮助

于 2016-04-29T09:31:53.753 回答
0

我能够使用 maven-antrun-plugin 通过以下执行来解决这个问题:

<execution>
  <id>rename-extensions-folder</id>
  <phase>prepare-package</phase>
  <goals>
     <goal>run</goal>
  </goals>
  <configuration>
     <target>
        <echo>Renaming folder</echo>
        <move file="${project.build.outputDirectory}/alfresco/site-webscripts/customizations/${project.version}"
              tofile="${project.build.outputDirectory}/alfresco/site-webscripts/customizations/${webscript.version}"/>
      </target>
  </configuration>
</execution>

...尽管我仍然很想知道如何在不需要此步骤的情况下使用自定义属性!

于 2016-04-29T08:54:51.393 回答