एक संभव दृष्टिकोण है जो कि कैसे आप हमेशा एक Maven निर्माण में एक if
बयान अनुकरण सकता है नीचे:
- उपयोग
buid-helper-maven-plugin
और पार्स करने के लिए डिफ़ॉल्ट ${project.version} property and create a new
$ {अपनी regex-property
लक्ष्य केवल SNAPSHOT
प्रत्यय के मामले में मूल्य true
या ${project.version}
के साथ .when.is.snapshot.used} संपत्ति।
- कॉन्फ़िगर
maven-source-plugin
ऊपर के रूप में ही इस निष्पादन
- कॉन्फ़िगर अपने
skipSource
विकल्प का उपयोग करने और इसे करने के लिए नई (गतिशील) ${only.when.is.snapshot.used} property: in case of snapshot it will have value
सच hence skip the execution, otherwise will have value ${project.version} which will be used as
FALSE` गुजर और इसलिए छोड़ नहीं maven-javadoc-plugin
के लिए एक विशेष विन्यास के साथ अपने jar
लक्ष्य निष्पादित करने के लिए इसके skip
विकल्प
का उपयोग कर दृष्टिकोण का एक नमूना ऊपर होगा:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<!-- sets the only.when.is.snapshot.used property to true if SNAPSHOT was used,
to the project version otherwise -->
<id>build-helper-regex-is-snapshot-used</id>
<phase>validate</phase>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>only.when.is.snapshot.used</name>
<value>${project.version}</value>
<regex>.*-SNAPSHOT</regex>
<replacement>true</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>create-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- skip when version is SNAPSHOT -->
<skipSource>${only.when.is.snapshot.used}</skipSource>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<executions>
<execution>
<id>create-javadoc</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- skip when version is SNAPSHOT -->
<skip>${only.when.is.snapshot.used}</skip>
</configuration>
</execution>
</executions>
</plugin>
यह है कि, प्रोफ़ाइल के लिए कोई ज़रूरत नहीं है, यह कॉन्फ़िगरेशन केवल तब सक्षम होगा जब एक गैर SNAPSHOT संस्करण का उपयोग किया जाएगा, गतिशील रूप से और बिना किसी अन्य कॉन्फ़िगरेशन (कमांड लाइन विकल्प या जो कुछ भी)।
एक पक्ष बता दें कि आप भी maven-release-plugin
, प्रभावी रूप से स्रोत और जावाडोक प्लगइन लागू करेगा, जिस पर दिखाई दे सकता है केवल जब performing बिना ऊपर दृष्टिकोण का जोड़ा (मामूली) जटिलता एक रिलीज।
अन्यथा, आप कर सकते थे सरल उपयोग डिफ़ॉल्ट प्रोफ़ाइल Maven Super POM से आ रही है, जो वास्तव में एक ही, स्रोत और जावाडोक प्लगइन आह्वान होता है, और true
मूल्य संपत्ति performRelease
सेट के माध्यम से सक्रिय किया जा सकता। हालांकि इस दृष्टिकोण चाहिए
mvn clean package -DperformRelease=true
या
mvn clean package -Prelease-profile
और आप स्वचालित रूप से डिफ़ॉल्ट सुपर प्रोफ़ाइल से लाभ और स्रोतों और जावाडोक जार उत्पन्न होगा,: यह आप निम्नलिखित आह्वान सकता किसी भी Maven परियोजना पर, है आखिरी विकल्प के रूप में इस्तेमाल किया जाना चाहिए क्योंकि प्रोफ़ाइल को भविष्य में रिलीज में सुपर पोम से हटाया जा सकता है।
स्रोत
2016-08-25 08:13:04
'स्किप' विकल्प वाले प्लगइन से संबंधित ये अतिरिक्त कदम हैं? –
अब तक अतिरिक्त कदम मेवेन-स्रोत-प्लगइन और मेवेन-जावाडोक-प्लगइन हैं। – conteit86