Toegang tot Maven-eigenschappen in Java

1. Overzicht

In deze korte tutorial bekijken we hoe variabelen kunnen worden gebruikt die in Maven's zijn gedefinieerd pom.xml vanuit een Java-applicatie.

2. Plug-in configuratie

In dit voorbeeld gebruiken we de Maven Properties Plugin.

Deze plug-in zal binden aan het middelen genereren phase en maak een bestand met de variabelen die zijn gedefinieerd in onze pom.xml tijdens de compilatie. We kunnen dat bestand dan tijdens runtime lezen om de waarden te krijgen.

Laten we beginnen met het opnemen van de plug-in in ons project:

 org.codehaus.mojo properties-maven-plugin 1.0.0 genereren-resources schrijven-project-eigenschappen $ {project.build.outputDirectory} /properties-from-pom.properties 

Vervolgens gaan we verder door een waarde aan onze variabele te geven. Bovendien, aangezien we ze binnen het pom.xml, kunnen we ook tijdelijke aanduidingen voor Maven gebruiken:

 $ {project.name} eigenschap-van-pom 

3. Eigenschappen lezen

Nu is het tijd om toegang te krijgen tot ons eigendom vanuit de configuratie. Laten we een eenvoudige utility-klasse maken om de eigenschappen uit een bestand op het klassenpad te lezen:

openbare klasse PropertiesReader {private Properties-eigenschappen; openbare PropertiesReader (String propertyFileName) gooit IOException {InputStream is = getClass (). getClassLoader () .getResourceAsStream (propertyFileName); this.properties = nieuwe Eigenschappen (); this.properties.load (is); } public String getProperty (String propertyName) {retourneer this.properties.getProperty (propertyName); }}

Vervolgens schrijven we eenvoudig een kleine testcase die onze waarden leest:

PropertiesReader reader = nieuwe PropertiesReader ("properties-from-pom.properties"); String property = reader.getProperty ("my.awesome.property"); Assert.assertEquals ("property-from-pom", property);

4. Conclusie

In dit artikel hebben we het proces doorlopen van het lezen van waarden die zijn gedefinieerd in het pom.xml met behulp van de Maven Properties Plugin.

Zoals altijd is alle code beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found