Ответ 1
Посмотрите на systemPropertyVariables (и друзей) точно. Он делает то, что вы хотите. AFAIK нет способа просто передать все свойства maven, не перечисляя их.
Я использую Maven 3.0.3 с JUnit 4.8.1. В моем тесте JUnit, как я могу прочитать project.artifactId, определенный в моем файле Maven pom.xml? В моем пом, я
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myco.pplus2</groupId>
<artifactId>pplus2</artifactId>
Но это не работает в моем тесте JUnit, чтобы получить идентификатор артефакта...
@Before
public void setUp() {
...
System.out.println( "artifactId:" + System.getProperty("project.build.sourceEncoding") );
} // setUp
Вышеупомянутые выходы "artifactId: null". В любом случае, оцените любую помощь, - Дэйв
Посмотрите на systemPropertyVariables (и друзей) точно. Он делает то, что вы хотите. AFAIK нет способа просто передать все свойства maven, не перечисляя их.
Свойства проекта Maven автоматически не добавляются в свойства Java-системы. Для этого существует немало вариантов. Для этой конкретной потребности вы можете определить свойство System для maven-surefire-plugin (те, которые запускают тесты), а затем использовать метод System.getProperty.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<systemProperties>
<property>
<name>projectArtifactId</name>
<value>${project.artifactId}</value>
</property>
</systemProperties>
</configuration>
</plugin>
Другим способом достижения свойств Maven для тестов JUnit, вероятно, будет фильтрация ресурсов для исходных исходных файлов.
PS. Чтение конфигураций Maven во время выполнения, даже в тестах, довольно грязно IMHO.:)
Иногда Eclipse настроен на использование Java Builder для Project- > Automatically Build (Right Click- > Project- > Properties- > Builders)
Если это так, иногда фильтрация ресурсов не работает. У вас есть несколько вариантов:
2 и 3 описаны в http://scottizu.wordpress.com/2013/10/16/reading-the-project-version-from-the-maven-pom-file/