هل يمكنني تعيين المشروع الإصدار مع buildnumber-مخضرم-البرنامج المساعد ؟

StackOverflow https://stackoverflow.com/questions/1230015

سؤال

أحاول إضافة إس.مراجعة النسخة مشروع مثل بناء عدد لا يمكن أن يبدو للقيام بذلك.جرة بلدي له الاسم الصحيح دورين التعبئة والتغليف ، ولكن المثبتة في بلدي المحلية مستودع وكأن ${buildNumber} هو/كان غير معروف عند إصدار تم تعيين.

أحصل فو-1.0.0-لقطة-${buildNumber} بدلا من فو-1.0.0-لقطة-304

أي فكرة عما أفعله خطأ أو إضافة تنقيح المشروع الإصدار فكرة سيئة ؟ شكرا للمساعدة.

<project>
  ...
  <version>1.0.0-${release.identifier}-${buildNumber}</version>
  <properties>
    <release.identifier>SNAPSHOT</release.identifier>
  </properties>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>useLastCommittedRevision</id>
            <goals>
              <goal>create</goal>
            </goals>
            <configuration>
              <useLastCommittedRevision>true</useLastCommittedRevision>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  ...
</project>
هل كانت مفيدة؟

المحلول

المشكلة من جزأين:

  1. أنت تحاول تعيين buildNumber في النسخة قبل أن يتم حل لذلك سوف يكون دائما ${buildNumber} بدلا من حلها القيمة.

    بدلا من محاولة تغيير حيوي الإصدار ، يجب تعيين buildNumber في finalName عنصر في البناء.هذا سوف إنشاء القطع الأثرية المقصود اسم في المستودع المحلي.

  2. تثبيت البرنامج المساعد سيتم تجاهل finalName ونشر ذلك كما 1.0.0-SNAPSHOT بغض النظر, أنا لا أعرف من طريقة لمعالجة ذلك.على buildNumber يضاف إلى الظاهر إذا كان يمكنك تكوين البرنامج المساعد على النحو التالي.

    لذا التكوين الخاص بك سيكون شيئا مثل:

    <version>1.0.0-${release.identifier}</version>
    ...
    <build>
      <finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName>
      ...
    </build>
    

وأود أن تجنب استخدام بناء على الأرقام SNAPSHOT مشاريع.

مخضرم يوفر SNAPSHOT الكلمة للدلالة متقلبة المشروع في التنمية النشطة.حتى إذا كنت المرجعية المشروع مع SNAPSHOT التبعية النسخة مخضرم تلقائيا التحقق من وجود تحديثات على تبعيات في المزامنة.

إذا كنت ثم إضافة بناء عدد نهاية هذا الإصدار سيكون لديك يدويا تحديث تبعيات حتى تفقد أي فائدة من وجود SNAPSHOT لاحقة.

أنا شخصيا تجنب استخدام بناء الأرقام حيث من الممكن على أي حال.إذا كان لدي لتحديث المشروع مجرد عثرة رقم الإصدار ، أو استخدام لاحقة مثل beta-2 أو RC2.إذا كنت بحاجة إلى تتبع تنقيح SNAPSHOT, أنا أنصح مضيفا أن يعبر لذلك يمكنك التحقق من حيث بناء نشأت ، ولكن استخدام معيار SNAPSHOT لاحقة السماح مخضرم لحل الإصدارات عادة.التكوين أدناه يوضح كيفية إضافة تنقيح البيان.

بقدر التكوين الخاص بك ، فإنه يبدو موافق علي افتراض SCM url إعداد بشكل صحيح.إذا كان لديك أي SCM التكوين في بوم قد تكون المشكلة.

يمكنك تشغيل مع -X والتحقق من وجود أي الإخراج من المساعد يشير إلى السبب في أنه ليس من وضع العقار ؟

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>buildnumber-maven-plugin</artifactId>
  <version>0.9.4</version>
  <executions>
    <execution>
      <id>useLastCommittedRevision</id>
      <phase>validate</phase>
      <goals>
        <goal>create</goal>
      </goals>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <archive>
      <manifest>
        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
      </manifest>
      <manifestEntries>
        <Implementation-Build>${buildNumber}</Implementation-Build>
      </manifestEntries>
    </archive>
  </configuration>
</plugin>

نصائح أخرى

هذا إضافة بعد buildnumber-maven-plugin:

<plugin>
    <groupId>io.github.michaldo</groupId>
    <artifactId>nashorn-maven-plugin</artifactId>
    <version>0.0.1</version>
    <executions>
        <execution>
            <phase>validate</phase>
            <goals>
                <goal>eval</goal>
            </goals>
            <configuration>
                <script>
                    $project.artifact.version = "${buildNumber}";
                </script>
            </configuration>
        </execution>
    </executions>
</plugin>

و buildNumber سيتم الاعتراف بها من قبل التعبئة والتغليف و نشر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top