Свойство сборки вспомогательного модуля Maven не работает для ресурса targetPath
Я использую плагин Build Helper Maven для создания свойства, которое является версией с "-" для "."... Я настроил его следующим образом:
<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>
элемент и поэтому я предполагаю, что находятся в той же фазе.
Может кто-нибудь посоветовать мне, как я могу настроить конфигурацию, чтобы заставить это работать, или предложить альтернативный подход к замене "." с "-" как новое свойство, которое будет работать в этом случае?
2 ответа
Вы можете использовать gmaven-plugin
Отличный плагин 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>
вот еще один пример
надеюсь это поможет
Я смог обойти это, используя 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>
... хотя я все еще хотел бы знать, как использовать пользовательское свойство без необходимости этого шага!