[ 
https://issues.apache.org/jira/browse/MNG-6508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karl Heinz Marbaise closed MNG-6508.
------------------------------------
    Resolution: Not A Problem

> maven profile overwrites test resources
> ---------------------------------------
>
>                 Key: MNG-6508
>                 URL: https://issues.apache.org/jira/browse/MNG-6508
>             Project: Maven
>          Issue Type: Bug
>          Components: Profiles
>    Affects Versions: 3.3.9, 3.6.0
>         Environment: Windows 8.1, Ubuntu 14.04, jdk1.8.0_191
>            Reporter: Tsukanov Ilya Vladimirovich
>            Priority: Critical
>
> I'm trying to make maven profiles which would use two difference DBMS. DBMS 
> configs are stored in maven profiles. Web App gets settings from file 
> connection.properties in src/main/resources. There is also a similar file 
> with same title connection.properties in src/test/resources and this file 
> should be uploaded only during test lyfecycle maven. Then spring core uses 
> the DBMS connection settings specified in connection.properties.
> I have problem with maven profile which overwrites resources such as 
> src/test/resources/connection.properties on 
> src/main/resources/connection.properties from test directory when test 
> lifecycle maven is running.
> {code:xml}
> <profiles>
>         <profile>
>             <id>profile-postgres</id>
>             <activation>
>                 <activeByDefault>true</activeByDefault>
>             </activation>
>             <properties>
>                 
> <database.driver_class_name>org.postgresql.Driver</database.driver_class_name>
>                 
> <database.url>jdbc:postgresql://127.0.0.1:5432/bulls_and_cows</database.url>
>                 <database.username>postgres</database.username>
>                 <database.password>postgres</database.password>
>                 <jpa.show_sql>true</jpa.show_sql>
>                 <jpa.generate_ddl>true</jpa.generate_ddl>
>                 <jpa.database>POSTGRESQL</jpa.database>
>                 
> <jpa.database_platform>org.hibernate.dialect.PostgreSQL95Dialect</jpa.database_platform>
>                 
> <jpa.hibernate.hbm2ddl.auto>validate</jpa.hibernate.hbm2ddl.auto>
>                 <jpa.hibernate.format_sql>false</jpa.hibernate.format_sql>
>                 <h2.scope>test</h2.scope>
>             </properties>
>             <dependencies>
>                 <!-- 
> https://mvnrepository.com/artifact/org.postgresql/postgresql -->
>                 <dependency>
>                     <groupId>org.postgresql</groupId>
>                     <artifactId>postgresql</artifactId>
>                     <version>42.2.1</version>
>                 </dependency>
>             </dependencies>
>         </profile>
>         <profile>
>             <id>profile-h2</id>
>             <activation>
>                 <activeByDefault>false</activeByDefault>
>             </activation>
>             <properties>
>                 
> <database.driver_class_name>org.h2.Driver</database.driver_class_name>
>                 
> <database.url>jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1</database.url>
>                 <database.username>sa</database.username>
>                 <database.password>sa</database.password>
>                 <jpa.show_sql>true</jpa.show_sql>
>                 <jpa.generate_ddl>true</jpa.generate_ddl>
>                 <jpa.database>H2</jpa.database>
>                 
> <jpa.database_platform>org.hibernate.dialect.H2Dialect</jpa.database_platform>
>                 
> <jpa.hibernate.hbm2ddl.auto>create-drop</jpa.hibernate.hbm2ddl.auto>
>                 <jpa.hibernate.format_sql>false</jpa.hibernate.format_sql>
>                 <h2.scope>compile</h2.scope>
>             </properties>
>         </profile>
>     </profiles>
> {code}
> This profile overwrites my connection.properties from src/test/resources on 
> src/main/resources.
> connection.properties from src/test/resources
> {noformat}
> database.driver_class_name=org.h2.Driver
> database.url=jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1
> database.username=sa
> database.password=sa
> {noformat}
> connection.properties from src/main/resources
> {noformat}
> database.driver_class_name=${database.driver_class_name}
> database.url=${database.url}
> database.username=${database.username}
> database.password=${database.password}
> {noformat}
> I wrote testResources tag in build tag of root pom file and in build tag of 
> profile tag such as
> {code:xml}
> <testResources>
>     <testResource>
>         <directory>${project.basedir}/src/test/resources</directory>
>         <filtering>true</filtering>
>     </testResource>
> </testResources>
> {code}
> But instead connection.properties from src/main/resources was always used in 
> test lifecycle of maven.
> My old failed build where I used profiles from 
> https://travis-ci.org/WeDism/BullsAndCows/builds/449051809.
> My repo with master branch 
> https://github.com/WeDism/BullsAndCows/blob/master/pom.xml.
> My repo with with_profiles_h2_postgres branch 
> https://github.com/WeDism/BullsAndCows/blob/with_profiles_h2_postgres/pom.xml
> Profile profile-postgres should be main such as activeByDefault = true



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to