मुझे पता है यह बहुत पहले उत्तर दिया गया है, लेकिन मैं इस सवाल का जवाब है कि कुछ उपयोगी लग सकते पर एक नया मोड़ के साथ आए हैं।
मेरे पास प्रतिलिपि प्लगइन प्रत्येक MAVEN बिल्ड पर जावा फ़ाइल में एक स्ट्रिंग को बदलता है। इसलिए, यदि pom.xml
कभी भी पोम प्रोजेक्ट संस्करण संख्या अपडेट करता है, तो यह स्वचालित रूप से जावा स्रोत फ़ाइल में दिखाई देता है।
replace
लक्ष्य के बारे में MAVEN बताओ के लिए:
<build>
...
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
com.google.code.maven-replacer-plugin
</groupId>
<artifactId>
replacer
</artifactId>
<versionRange>
[1.5.3,)
</versionRange>
<goals>
<goal>replace</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
<runOnIncremental>true</runOnIncremental>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
...
</build>
MAVEN बताओ करने के लिए वर्तमान नाम और संस्करण में भरने के:
(यदि आप चाहें, basedir
में पूर्ण उप पथ रख दिया और हटाने शामिल फ़ाइल नाम से **/
)
<build>
...
<plugins>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>replace-version-number</id>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<basedir>${project.basedir}/src/main/java</basedir>
<includes>
<include>**/Constants.java</include>
</includes>
<preserveDir>true</preserveDir>
<replacements>
<replacement>
<token>mavenProjectName = ".*"</token>
<value>mavenProjectName = "${project.name}"</value>
</replacement>
<replacement>
<token>mavenProjectVersion = ".*"</token>
<value>mavenProjectVersion = "${project.version}"</value>
</replacement>
</replacements>
</configuration>
</plugin>
....
</plugins>
...
</build>
Constants.java में
:।
012,
...
private static final String mavenProjectName = "";
private static final String mavenProjectVersion = "";
...
संकलन चरण से पहले generate_sources
चरण में मूल्यों को पीओएम के मूल्यों से भर दिया जाता है।
प्रतिकृति के टोकन में वाइल्डकार्ड .*
का अर्थ है कि मान अपडेट किया गया है भले ही आप एक अद्यतन प्रति को स्रोत नियंत्रण में जांचें।
स्रोत
2016-12-06 17:51:29
आप maven - 'pom.xml' – donnior
के लिए कॉन्फ़िगरेशन फ़ाइल में संस्करण निर्दिष्ट कर सकते हैं हां, मुझे पता है, लेकिन मुझे ऐप को संस्करण संख्या के बारे में भी जानने की आवश्यकता है, इसलिए pom.xml को संस्करण संख्या को पढ़ना चाहिए एक जावा फ़ाइल या pom.xml संस्करण संख्या के साथ एक जावा फ़ाइल के निर्माण को ट्रिगर करना चाहिए। –
मेवेन में "फ़िल्टर संसाधन" सुविधा है, यह आपके कोड फ़ाइल में कुछ सामग्री को बिल्ड के दौरान मेवेन चर के साथ प्रतिस्थापित कर सकती है, आपको अपनी फ़ाइलों में '$ {project.version} 'जैसे मार्कअप जोड़ना है। आप इसे http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html – donnior