ProgramingTip

Maven 프로젝트에 시스템 속성 지정

bestdevel 2020. 11. 23. 19:46
반응형

Maven 프로젝트에 시스템 속성 지정


Maven 프로젝트에서 시스템 속성을 설정하는 방법이 있습니까 (내 말은 어떻게합니까?)?

내 테스트 및 내 웹 앱 (로컬 실행)에서 속성에 액세스하고 싶습니다. Java 시스템 속성을 사용할 수 있습니다.

./settings.xml 또는 이와 함께 어디에 넣어야합니까?

석고

나는 오픈 소스 프로젝트를 가져 오기 JavaDB를 사용하도록 db 구성을 변경했습니다.

이제 JavaDB 용 jdbc url에서 데이터베이스의 위치를 ​​전체 경로로 어디에서 찾을 수 있습니다 (참조 : this other question ).

또는 시스템 속성 : derby.system.home

이미 코드가 작동하고 현재는 다음과 같이 모두 코딩되어 있습니다.

 jdbc:derby:/Users/oscarreyes/javadbs/mydb

그리고 전체 경로를 제거하고 다음과 같이두고 싶습니다.

 jdbc:derby:mydb

이를 위해 시스템 속성 ( derby.system.home)을 maven 에 지정해야 하지만 방법을 모르겠습니다.

테스트는 junit (pom.xml에 실행이 표시되지 않음)을 사용하여 실행 웹 앱은 jetty를 사용하여 실행합니다.

명령 줄에서 시스템이 작동하는 속성을 지정하는 것은 존재하는 것에서 작동하는 속성을 지정하는 것이 실용적인지 확실하지 않습니다 (다른가 일식 / 아이디어 / 뭐든지에서 있음)


Maven 프로젝트에서 시스템 속성을 설정하는 방법이 있습니까 (내 말은 어떻게합니까?)? 나는 나의 시험에서 재산에 접근하고 싶다 ...]

Maven Surefire Plugin 구성 에서 시스템 속성을 수 있습니다. (테스트는 기본적으로 분기되기 때문에) 시스템 속성 사용 에서 :

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <systemPropertyVariables>
            <propertyName>propertyValue</propertyName>
            <buildDirectory>${project.build.directory}</buildDirectory>
            [...]
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

및 내 webapp (로컬 실행)

여기서 의미하는 바는 확실하지 않지만 웹 앱 컨테이너가 Maven에 의해 시작됩니다. 다음을 사용하여 명령 줄에서 시스템 속성을 사용할 수 있습니다.

mvn -DargLine="-DpropertyName=propertyValue"

업데이트 : 좋습니다. 지금 확인하세요. Jetty의 경우 Maven Jetty의 경우 구성에서 시스템 속성을 사용합니다. 시스템 속성 설정 에서 :

<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <configuration>
         ...
         <systemProperties>
            <systemProperty>
              <name>propertyName</name>
              <value>propertyValue</value>
            </systemProperty>
            ...
         </systemProperties>
        </configuration>
      </plugin>
  </plugins>
</project>

properties-maven-plugin 플러그인 이 도움이 될 수 있습니다.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0.0</version>
    <executions>
        <execution>
            <goals>
                <goal>set-system-properties</goal>
            </goals>
            <configuration>
                <properties>
                    <property>
                        <name>my.property.name</name>
                        <value>my.property.value</value>
                    </property>
                </properties>
            </configuration>
        </execution>
    </executions>
</plugin>

"독립 실행 형"Java 앱을 사용하는 경우 exec-maven-plugin을 사용 하여이 작업을 수행 할 수도있는 것을 배웠습니다.

            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>${maven.exec.plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>${exec.main-class}</mainClass>
                <systemProperties>
                    <systemProperty>
                        <key>myproperty</key>
                        <value>myvalue</value>
                    </systemProperty>
                </systemProperties>
            </configuration>
        </plugin>

테스트와 웹앱이 동일한 Maven 프로젝트에있는 경우 프로젝트 POM에서 속성을 사용할 수 있습니다. 그런 다음 Maven이 해당 파일에서 속성을 접근 할 수 있습니다. 필터링하는 방법에는 여러 가지가 가장 일반적인 방법은 리소스 단계 ( http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-description.html)입니다.

테스트와 웹앱이 서로 다른 Maven 프로젝트에있는 경우 Windows의 maven 저장소 폴더 (C : \ Documents and Settings \ username.m2)에있는 settings.xml에 속성을 넣을 수 있습니다. 테스트 및 웹앱에서 속성을 읽으려면 필터링 또는 다른 방법을 사용해야합니다.

참고 URL : https://stackoverflow.com/questions/3231797/specify-system-property-to-maven-project

반응형