diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7f69afd3afc7416f82c934795d8386cce4e5ed5e --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Eclipse +.classpath +.project +.settings/ + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a32b0cd5314d702066d2e43ef2bac4795a8c7dd --- /dev/null +++ b/pom.xml @@ -0,0 +1,39 @@ +<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/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java21-quickstart</artifactId> + <version>1.0.1</version> + <packaging>maven-archetype</packaging> + + <build> + <extensions> + <extension> + <groupId>org.apache.maven.archetype</groupId> + <artifactId>archetype-packaging</artifactId> + <version>3.1.1</version> + </extension> + </extensions> + </build> + + <repositories> + <repository> + <id>vsb-archetypes</id> + <name>vsb-archetypes</name> + <url>https://artifactory.cs.vsb.cz/archetypes</url> + </repository> + </repositories> + + <distributionManagement> + <snapshotRepository> + <id>vsb-archetypes-releases</id> + <url>https://artifactory.cs.vsb.cz/repository/archetype-snapshots/</url> + </snapshotRepository> + <repository> + <id>vsb-archetypes-snapshots</id> + <url>https://artifactory.cs.vsb.cz/repository/archetype-releases/</url> + </repository> + </distributionManagement> + +</project> diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa107ebe1309bb4fc169a4b3cd0a03a2fecf64cf --- /dev/null +++ b/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,37 @@ +<archetype-descriptor + xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0" + xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 https://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" + name="javafx-quickstart"> + <fileSets> + <fileSet filtered="true" packaged="true"> + <excludes> + <exclude>module-info.java</exclude> + </excludes> + <directory>src/main/java</directory> + </fileSet> + <fileSet filtered="true"> + <includes> + <include>module-info.java</include> + </includes> + <directory>src/main/java</directory> + </fileSet> + + <fileSet filtered="true" packaged="true"> + <excludes> + <exclude>log4j2.xml</exclude> + </excludes> + <directory>src/main/resources</directory> + </fileSet> + <fileSet filtered="true" packaged="false"> + <directory>src/main/resources</directory> + <includes> + <include>log4j2.xml</include> + </includes> + </fileSet> + + <fileSet filtered="true" packaged="true"> + <directory>src/test/java</directory> + </fileSet> + </fileSets> +</archetype-descriptor> \ No newline at end of file diff --git a/src/main/resources/archetype-resources/.gitignore b/src/main/resources/archetype-resources/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..98b99a551e28559528e090cbfc676dcff9bd7def --- /dev/null +++ b/src/main/resources/archetype-resources/.gitignore @@ -0,0 +1,16 @@ +# Eclipse +.classpath +.project +.settings/ + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b3537e35ac6ce4a8fd9fbbce9ac71e04dba83b6d --- /dev/null +++ b/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,65 @@ +<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/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>${groupId}</groupId> + <artifactId>${artifactId}</artifactId> + <version>${version}</version> + + <name>${artifactId}</name> + + <packaging>jar</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.release>21</maven.compiler.release> + <JUnit.version>5.10.1</JUnit.version> + <log4j.version>2.22.1</log4j.version> + <lombok.version>1.18.30</lombok.version> + </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${JUnit.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.2.1</version> + </plugin> + </plugins> + </build> + +</project> diff --git a/src/main/resources/archetype-resources/src/main/java/App.java b/src/main/resources/archetype-resources/src/main/java/App.java new file mode 100644 index 0000000000000000000000000000000000000000..ad88bd4d0f25044bea84e1164ad9273eda4115db --- /dev/null +++ b/src/main/resources/archetype-resources/src/main/java/App.java @@ -0,0 +1,16 @@ +package $package; + +import lombok.extern.log4j.Log4j2; + +/** + * Class <b>App</b> - main class + * @author Java I + */ +@Log4j2 +public class App { + + public static void main(String[] args) { + log.info("Launching Java application."); + } + +} \ No newline at end of file diff --git a/src/main/resources/archetype-resources/src/main/java/module-info.java b/src/main/resources/archetype-resources/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..59d078c89a0b0bd4cb4cebb06d6cc49c59955509 --- /dev/null +++ b/src/main/resources/archetype-resources/src/main/java/module-info.java @@ -0,0 +1,4 @@ +module $package { + requires lombok; + requires org.apache.logging.log4j; +} \ No newline at end of file diff --git a/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/src/main/resources/archetype-resources/src/main/resources/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..acb3514078f6fb73f4f09ffd7a172b47f184e961 --- /dev/null +++ b/src/main/resources/archetype-resources/src/main/resources/log4j2.xml @@ -0,0 +1,13 @@ +<Configuration> + <Appenders> + <Console name="Console"> + <PatternLayout + pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> + </Console> + </Appenders> + <Loggers> + <Root level="info"> + <AppenderRef ref="Console"></AppenderRef> + </Root> + </Loggers> +</Configuration> diff --git a/src/main/resources/archetype-resources/src/test/java/AppTest.java b/src/main/resources/archetype-resources/src/test/java/AppTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f5b64156a136b6fbe9f1a194d2f233b1c981d3c2 --- /dev/null +++ b/src/main/resources/archetype-resources/src/test/java/AppTest.java @@ -0,0 +1,19 @@ +package $package; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Unit test for simple App. + */ +class AppTest { + + /** + * Rigorous Test :-) + */ + @Test + void shouldAnswerWithTrue() { + assertTrue(true); + } +}