Maven - Profil Oluştur
Profil Oluşturma nedir?
Yapı profili, Maven derlemesinin varsayılan değerlerini ayarlamak veya geçersiz kılmak için kullanılabilen bir dizi konfigürasyon değeridir. Bir yapı profili kullanarak, Üretim v / s Geliştirme ortamları gibi farklı ortamlar için derlemeyi özelleştirebilirsiniz.
Profiller, activeProfiles / profiles öğeleri kullanılarak pom.xml dosyasında belirtilir ve çeşitli şekillerde tetiklenir. Profiller, derleme sırasında POM'u değiştirir ve parametrelere farklı hedef ortamlar (örneğin, geliştirme, test ve üretim ortamlarında veritabanı sunucusunun yolu) vermek için kullanılır.
Yapı Profili Türleri
Yapı profilleri büyük ölçüde üç türdendir.
Tür | Nerede tanımlanır |
---|---|
Proje Başına | Proje POM dosyasında, pom.xml tanımlanmıştır |
Kullanıcı Başına | Maven ayarları xml dosyasında (% USER_HOME% /. M2 / settings.xml) tanımlanmıştır |
Küresel | Maven genel ayarlar xml dosyasında (% M2_HOME% / conf / settings.xml) tanımlanmıştır |
Profil Aktivasyonu
Maven Yapı Profili çeşitli şekillerde etkinleştirilebilir.
- Açıkça komut konsolu girişi kullanarak.
- Maven ayarları aracılığıyla.
- Ortam değişkenlerine (Kullanıcı / Sistem değişkenleri) göre.
- İşletim Sistemi Ayarları (örneğin, Windows ailesi).
- Mevcut / eksik dosyalar.
Profil Aktivasyon Örnekleri
Projenizin aşağıdaki dizin yapısını varsayalım -
Şimdi, altında src/main/resources, ortama özgü üç dosya vardır -
Sr.No. | Dosya Adı ve Tanımı |
---|---|
1 | env.properties profilden bahsedilmezse varsayılan yapılandırma kullanılır. |
2 | env.test.properties test profili kullanıldığında konfigürasyonu test edin. |
3 | env.prod.properties prod profili kullanıldığında üretim konfigürasyonu. |
Açık Profil Aktivasyonu
Aşağıdaki örnekte, fazı test etmek için maven-antrun-plugin: run goal ekleyeceğiz. Bu, farklı profiller için metin mesajlarını yansıtmamıza izin verecektir. Farklı profilleri tanımlamak için pom.xml kullanacağız ve maven komutunu kullanarak komut konsolunda profili etkinleştireceğiz.
Diyelim ki, C: \ MVN \ proje klasöründe aşağıdaki pom.xml'yi oluşturduk.
<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.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<profiles>
<profile>
<id>test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Using env.test.properties</echo>
<copy file="src/main/resources/env.test.properties"
tofile="${project.build.outputDirectory}
/env.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Şimdi komut konsolunu açın, pom.xml içeren klasöre gidin ve aşağıdakileri yürütün mvnkomut. Profil adını -P seçeneğini kullanarak bağımsız değişken olarak iletin.
C:\MVN\project>mvn test -Ptest
Maven, test oluşturma profilinin sonucunu işlemeye ve görüntülemeye başlayacaktır.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO] task-segment: [test]
[INFO] ------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] Copying 3 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\project\src\test\resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: C:\MVN\project\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
There are no tests to run.
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks
[echo] Using env.test.properties
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sun Jul 08 14:55:41 IST 2012
[INFO] Final Memory: 8M/64M
[INFO] ------------------------------------------------------------------
Şimdi bir egzersiz olarak aşağıdaki adımları gerçekleştirebilirsiniz -
Pom.xml'nin profiller öğesine başka bir profil öğesi ekleyin (mevcut profil öğesini kopyalayın ve profil öğelerinin bittiği yere yapıştırın).
Bu profil öğesinin kimliğini testten normale güncelleyin.
Env.properties öğesini yankılamak için görev bölümünü güncelleyin ve env.properties öğesini hedef dizine kopyalayın.
Yukarıdaki üç adımı tekrarlayın, id'yi prod olarak güncelleyin ve env.prod.properties için görev bölümünü güncelleyin.
Bu kadar. Artık hazır üç yapı profiliniz var (normal / test / prod).
Şimdi komut konsolunu açın, pom.xml içeren klasöre gidin ve aşağıdakileri yürütün mvnkomutlar. Profil adlarını -P seçeneğini kullanarak bağımsız değişken olarak geçirin.
C:\MVN\project>mvn test -Pnormal
C:\MVN\project>mvn test -Pprod
Farkı görmek için yapının çıktısını kontrol edin.
Maven Ayarları ile Profil Etkinleştirme
Maven'i açın settings.xml dosya% USER_HOME% /. m2 dizininde mevcut %USER_HOME%kullanıcının ev dizinini temsil eder. Settings.xml dosyası orada değilse, yeni bir tane oluşturun.
Aşağıda örnekte gösterildiği gibi aktif Profiller düğümünü kullanarak test profilini aktif bir profil olarak ekleyin.
<settings 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/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>maven.dev.snaponglobal.com</id>
<name>Internal Artifactory Maven repository</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>test</activeProfile>
</activeProfiles>
</settings>
Şimdi komut konsolunu açın, pom.xml içeren klasöre gidin ve aşağıdakileri yürütün mvnkomut. Profil adını -P seçeneğini kullanarak geçmeyin. Maven, test profilinin aktif bir profil olduğu sonucunu gösterecektir.
C:\MVN\project>mvn test
Ortam Değişkenleri ile Profil Etkinleştirme
Şimdi aktif profili maven settings.xml'den kaldırın ve pom.xml'de belirtilen test profilini güncelleyin. Aşağıda gösterildiği gibi profil öğesine aktivasyon öğesi ekleyin.
Test profili, "env" sistem özelliği "test" değeriyle belirtildiğinde tetiklenir. Bir ortam değişkeni "env" oluşturun ve değerini "test" olarak ayarlayın.
<profile>
<id>test</id>
<activation>
<property>
<name>env</name>
<value>test</value>
</property>
</activation>
</profile>
Komut konsolunu açalım, pom.xml içeren klasöre gidelim ve aşağıdakileri uygulayalım mvn komut.
C:\MVN\project>mvn test
İşletim Sistemi Üzerinden Profil Etkinleştirme
Etkinleştirme öğesi, aşağıda gösterildiği gibi işletim sistemi detayını içerecek. Bu test profili, sistem Windows XP olduğunda tetiklenecektir.
<profile>
<id>test</id>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
</profile>
Şimdi komut konsolunu açın, pom.xml içeren klasöre gidin ve aşağıdakileri yürütün mvnkomutlar. Profil adını -P seçeneğini kullanarak geçmeyin. Maven, test profilinin aktif bir profil olduğu sonucunu gösterecektir.
C:\MVN\project>mvn test
Mevcut / Eksik Dosya ile Profil Etkinleştirme
Şimdi etkinleştirme öğesi, aşağıda gösterildiği gibi işletim sistemi ayrıntılarını içerecek. Test profili ne zaman tetiklenirtarget/generated-sources/axistools/wsdl2java/com/companyname/group kayıp.
<profile>
<id>test</id>
<activation>
<file>
<missing>target/generated-sources/axistools/wsdl2java/
com/companyname/group</missing>
</file>
</activation>
</profile>
Şimdi komut konsolunu açın, pom.xml içeren klasöre gidin ve aşağıdakileri yürütün mvnkomutlar. Profil adını -P seçeneğini kullanarak geçmeyin. Maven, test profilinin aktif bir profil olduğu sonucunu gösterecektir.
C:\MVN\project>mvn test