Giriş
Bir örnek buradaÖrnek
pom.xml şöyledir. Burada önemli olan şey artifactId ile belirtilen isim
<?xml version="1.0" encoding="UTF-8"?><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>fr.simplex-software.archetypes</groupId><artifactId>jakartaee10-basic-archetype</artifactId><version>1.0-SNAPSHOT</version><name>Basic Java EE 10 project archetype</name>...<packaging>maven-archetype</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><build><extensions><extension><groupId>org.apache.maven.archetype</groupId><artifactId>archetype-packaging</artifactId><version>3.1.1</version></extension></extensions></build></project>
Böylece şöyle kullanırız
mvn -B archetype:generate \ -DarchetypeGroupId=fr.simplex-software.archetypes \ -DarchetypeArtifactId=jakartaee10-basic-archetype \ -DarchetypeVersion=1.0-SNAPSHOT \ -DgroupId=com.exemple \ -DartifactId=test
Kod üretiminde kullanılacak her şey şu dosyada tanımlı. Bu dosyada tanımlı her şeyin önüne src/main/resources/archetype-resources/ eklenir.
src/main/resources/META-INF/maven/archetype-metadata.xml
XML şöyle ise
<archetype-descriptor...> <fileSets> <fileSet filtered="true" packaged="false" encoding="UTF-8"> <directory>src/main/java</directory> <includes> <include>**/*.java</include> </includes> </fileSet> ... </fileSets> </archetype-descriptor>
Java kodları şu dizinde
src/main/resources/archetype-resources/src/main/java
Örneğin test kodları şurada
src/main/resources/archetype-resources/src/test/java/
Diğer dosyalar şurada
src/main/resources/archetype-resources/src/main/resources/META-INF src/main/resources/archetype-resources/src/main/webapp/WEB-INF/
Kodlarda Velocity placeholder kullanılıyor. Şöyle yaparız. Burada $package bir placeholder
package $package; import jakarta.ws.rs.*; import jakarta.ws.rs.core.*; import jakarta.inject.*; import org.eclipse.microprofile.config.inject.*; @Path("myresource") public class MyResource { @Inject @ConfigProperty(name = "message") private String message; @GET @Produces(MediaType.TEXT_PLAIN) public String getIt() { return message; } }
Hiç yorum yok:
Yorum Gönder