плагин знатока свойств: Ошибка, загружающая файл свойств

Я хочу извлечь все свойства из своего pom.xml в файл свойств. Это общая собственность как версии зависимости, версии модуля и каталоги. Я использую плагин знатока свойств, но не работа, поскольку я хочу это к.

Основная часть моего pom.xml:


  org.codehaus.mojo
  properties-maven-plugin
  1.0-alpha-1
  
    
      initialize
      
        read-project-properties
      
      
       
          ${basedir}/pom.properties
        
      
    
  

Теперь, когда я выполняю "mvn properties:read-свойства-проекта", я получаю следующую ошибку:

[INFO] One or more required plugin parameters are invalid/missing for 'properties:read-project-properties'

[0] Inside the definition for plugin 'properties-maven-plugin' specify the following:


  ...
  VALUE
.

Pom.properties-файл расположен в том же dir как pom.xml. Что я могу сделать, чтобы позволить плагину знатока свойств считать мой файл свойств?

Править

Я зарегистрировал проблему по http://jira.codehaus.org/browse/MOJO-1523. Это было закрыто как "не ошибка", причина:

Это дизайном. Определение проекта должно быть автономным, иначе это больше не завершено, если это отнесено откуда-либо как часть переходного deps.

9
задан Ingo Fischer 16 June 2010 в 20:12
поделиться

2 ответа

РЕДАКТИРОВАТЬ2

См. здесь для обходного пути с использованием задач Ant, который делает возможным этот вариант использования

0
ответ дан 4 December 2019 в 22:28
поделиться

Ваш элемент конфигурации определен внутри выполнения и, таким образом, применяется только к этому исполнению .

Таким образом, либо вызовите mvn initialize (или фазу после initialize ), чтобы использовать конфигурацию вашего текущего выполнения ) связывания.

Или используйте глобальную конфигурацию :

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <configuration>
     <files>
        <file>etc/config/dev.properties</file>
      </files>
    </configuration>
    ...
  </plugin>

А затем вызовите

mvn properties:read-project-properties

Но это не имеет особого смысла в конкретном случае этого плагина (вы хотите, чтобы свойства были доступны во время сборки ), поэтому остается первое решение.


Обновление: Я провел тест на своей стороне и, действительно, со следующим POM:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.stackoverflow</groupId>
  <artifactId>Q2664362</artifactId>
  <version>1.0-SNAPSHOT</version>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-2</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>etc/config/dev.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Запуск mvn test не сработает: maven попытается загрузить junit : jar: $ {junit.version} (т.е. он не использует значение свойства), и это, очевидно, не удастся.

$ mvn test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building SO - Q2664362 - maven-properties-plugin demo
[INFO]    task-segment: [test]
[INFO] ------------------------------------------------------------------------
[INFO] [properties:read-project-properties {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pascal/Projects/stackoverflow/Q2664362/src/main/resources
Downloading: http://repo1.maven.org/maven2/junit/junit/${junit.version}/junit-${junit.version}.pom
[INFO] Unable to find resource 'junit:junit:pom:${junit.version}' in repository central (http://repo1.maven.org/maven2)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pascal/Projects/stackoverflow/Q2664362/src/test/resources
Downloading: http://repo1.maven.org/maven2/junit/junit/${junit.version}/junit-${junit.version}.jar
[INFO] Unable to find resource 'junit:junit:jar:${junit.version}' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
...

Странно то, что загрузка зависимости происходит после properties: read-project-properties .Я не уверен, но это похоже на ошибку, вам следует открыть проблему .

6
ответ дан 4 December 2019 в 22:28
поделиться