두 개의 Maven 프로파일을 만들려고하고 있는데, 제가 잘못 생각한 것 같습니다. 메이븐 웹 사이트에 읽고 무엇을 제안했다 않았지만, 속성 내의 pom.xml 파일에 아직하지 pom.xml 파일에서 값을 전달 : 내 등록 정보 파일Maven 프로파일 문제
<name>maven-create-profiles</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<resource.dir>src/main/resources</resource.dir>
</properties>
<profiles>
<profile>
<id>dev</id>
<properties>
<environment>dev</environment>
<db.username>myDevUser</db.username>
<db.password>secretDevPasswd</db.password>
<db.url>jdbc:mysql://localhost/myDb</db.url>
<db.dialect>org.hibernate.dialect.MySQL5Dialect</db.dialect>
<db.driver>com.mysql.jdbc.Driver</db.driver>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>environment</name>
<value>dev</value>
</property>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<environment>prod</environment>
<db.username>myProdUser</db.username>
<db.password>secretProdPasswd</db.password>
<db.url>jdbc:mysql://production-database/myDb</db.url>
<db.dialect>org.hibernate.dialect.MySQL5Dialect</db.dialect>
<db.driver>com.mysql.jdbc.Driver</db.driver>
</properties>
<activation>
<property>
<name>environment</name>
<value>prod</value>
</property>
</activation>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
:
db.username=${db.username}
db.password=${db.password}
db.url=${db.url}
db.dialect=${db.dialect}
db.driver=${db.driver}
내 자바 클래스를 :
public class MyTest {
static String userName;
static String myPassword;
static String myAccount;
@BeforeClass
public void setUp() throws IOException {
Properties properties = new Properties();
properties.load(new FileInputStream("src/main/resources/db.properties"));
userName = properties.getProperty("db.username");
myPassword = properties.getProperty("db.password");
myAccount = properties.getProperty("db.url");
}
@Test
public void myTest() {
System.out.println(userName);
System.out.println(myPassword);
System.out.println(myAccount);
}
} 내가 갖는 실행 후 결과
:
${db.username}
${db.password}
${db.url}
그러나 저는 실제로 내가 멘 이브 프로필에서 전달하는 것을 얻고 싶습니다. (이것이 프로필을 만드는 주된 이유입니다.) 미리 감사드립니다 !!
이것은 미친입니다. 절대로 POM에 암호를 넣지 마십시오. 그것을 위해'settings.xml'을 사용하십시오. POM을 업로드하면 데이터베이스 비밀을 구울 수 있습니다. –
당신은 내가 나쁜 생각이라고 생각합니다. 저는 많은 사람들이 튜토리얼에서 그것을 보았 기 때문에 그것을했습니다. 내 Pom.xml 파일이 settings.xml을 사용하도록 어떻게 변경되어야하는지 알고 있습니까? 그 구현을 위해 settings.xml이 어떻게 보일 것인가? 감사합니다. –