Skip to content

Commit 0e79448

Browse files
committed
Initial commit.
1 parent 171da4a commit 0e79448

File tree

6 files changed

+165
-14
lines changed

6 files changed

+165
-14
lines changed

pom.xml

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,87 @@
3838
<artifactId>maven-deploy-plugin</artifactId>
3939
<version>3.1.4</version>
4040
</plugin>
41+
<plugin>
42+
<groupId>org.apache.maven.plugins</groupId>
43+
<artifactId>maven-source-plugin</artifactId>
44+
<version>2.2.1</version>
45+
<executions>
46+
<execution>
47+
<id>attach-sources</id>
48+
<goals>
49+
<goal>jar-no-fork</goal>
50+
</goals>
51+
</execution>
52+
</executions>
53+
</plugin>
54+
<plugin>
55+
<groupId>org.apache.maven.plugins</groupId>
56+
<artifactId>maven-javadoc-plugin</artifactId>
57+
<version>3.2.0</version>
58+
<configuration>
59+
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
60+
<encoding>UTF-8</encoding>
61+
<charset>UTF-8</charset>
62+
<docencoding>UTF-8</docencoding>
63+
<additionalJOptions>
64+
<additionalJOption>-J-Dfile.encoding=UTF-8</additionalJOption>
65+
<additionalJOption>-J-Duser.language=en</additionalJOption>
66+
<additionalJOption>-J-Duser.country=US</additionalJOption>
67+
</additionalJOptions>
68+
<additionalOptions>
69+
<additionalOption>-locale</additionalOption>
70+
<additionalOption>en_US</additionalOption>
71+
</additionalOptions>
72+
<doclint>none</doclint>
73+
</configuration>
74+
<executions>
75+
<execution>
76+
<id>attach-javadocs</id>
77+
<goals>
78+
<goal>jar</goal>
79+
</goals>
80+
</execution>
81+
</executions>
82+
</plugin>
83+
<plugin>
84+
<groupId>org.apache.maven.plugins</groupId>
85+
<artifactId>maven-gpg-plugin</artifactId>
86+
<version>1.6</version>
87+
<executions>
88+
<execution>
89+
<id>sign-artifacts</id>
90+
<phase>verify</phase>
91+
<goals>
92+
<goal>sign</goal>
93+
</goals>
94+
<configuration>
95+
<gpgArguments>
96+
<arg>--pinentry-mode</arg>
97+
<arg>loopback</arg>
98+
</gpgArguments>
99+
</configuration>
100+
</execution>
101+
</executions>
102+
</plugin>
103+
<plugin>
104+
<groupId>org.sonatype.central</groupId>
105+
<artifactId>central-publishing-maven-plugin</artifactId>
106+
<version>0.7.0</version>
107+
<extensions>true</extensions>
108+
<configuration>
109+
<publishingServerId>central</publishingServerId>
110+
</configuration>
111+
</plugin>
41112
</plugins>
42113
</build>
43-
114+
<distributionManagement>
115+
<repository>
116+
<id>central</id>
117+
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2</url>
118+
</repository>
119+
<snapshotRepository>
120+
<id>central</id>
121+
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
122+
</snapshotRepository>
123+
</distributionManagement>
44124
</project>

src/main/resources/META-INF/archetype-post-generate.groovy

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,46 @@ def setExec = { path ->
1616
}
1717
}
1818

19-
setExec('mvnw')
2019
setExec('bin/dispatcher')
20+
21+
import java.nio.file.Path
22+
import java.nio.file.Paths
23+
24+
// Get the generated project directory
25+
Path projectPath = Paths.get(request.outputDirectory, request.artifactId)
26+
File projectDir = projectPath.toFile()
27+
28+
println ""
29+
println "=" * 60
30+
println "Compiling generated project..."
31+
println "=" * 60
32+
33+
try {
34+
// Execute Maven compile
35+
def command = System.getProperty('os.name').toLowerCase().contains('windows')
36+
? ['cmd', '/c', 'mvn', 'clean', 'compile']
37+
: ['mvn', 'clean', 'compile']
38+
39+
def process = command.execute(null, projectDir)
40+
process.consumeProcessOutput(System.out, System.err)
41+
process.waitFor()
42+
43+
if (process.exitValue() == 0) {
44+
println ""
45+
println "✓ Project compiled successfully!"
46+
println ""
47+
} else {
48+
println ""
49+
println "⚠ Compilation completed with warnings/errors"
50+
println " You may need to run 'mvn clean compile' manually"
51+
println ""
52+
}
53+
} catch (Exception e) {
54+
println ""
55+
println "⚠ Could not auto-compile: ${e.message}"
56+
println " Please run 'mvn clean compile' manually"
57+
println ""
58+
}
59+
60+
println "Project location: ${projectPath}"
61+
println "=" * 60

src/main/resources/META-INF/maven/archetype-metadata.xml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</requiredProperty>
1414
</requiredProperties>
1515
<fileSets>
16-
<fileSet>
16+
<fileSet filtered="true">
1717
<directory>src/main/java</directory>
1818
<includes>
1919
<include>**/*.java</include>
@@ -24,24 +24,29 @@
2424
<includes>
2525
<include>**/*</include>
2626
</includes>
27+
<filtered>true</filtered>
2728
</fileSet>
2829
<fileSet>
2930
<directory>.</directory>
3031
<includes>
3132
<include>pom.xml</include>
33+
<include>mvnw</include>
34+
<include>mvnw.cmd</include>
35+
</includes>
36+
<filtered>true</filtered>
37+
</fileSet>
38+
<fileSet filtered="true">
39+
<directory>bin</directory>
40+
<includes>
41+
<include>**/*</include>
3242
</includes>
3343
</fileSet>
34-
<!-- Ensure wrapper scripts, .mvn wrapper and bin scripts are packaged into generated projects -->
3544
<fileSet>
36-
<directory>.</directory>
45+
<directory>.mvn</directory>
3746
<includes>
38-
<include>mvnw</include>
39-
<include>mvnw.cmd</include>
40-
<include>.mvn/wrapper/**</include>
41-
<include>bin/**</include>
47+
<include>**/*</include>
48+
<include>**/wrapper/*</include>
4249
</includes>
43-
<!-- enable filtering so archetype properties (e.g. ${tinystructVersion}) are replaced -->
44-
<filtered>true</filtered>
4550
</fileSet>
4651
</fileSets>
4752
</archetype-descriptor>

src/main/resources/archetype-resources/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,22 @@
4747
<useModulePath>false</useModulePath>
4848
</configuration>
4949
</plugin>
50+
<plugin>
51+
<groupId>org.apache.maven.plugins</groupId>
52+
<artifactId>maven-dependency-plugin</artifactId>
53+
<version>2.8</version>
54+
<executions>
55+
<execution>
56+
<phase>compile</phase>
57+
<goals>
58+
<goal>copy-dependencies</goal>
59+
</goals>
60+
<configuration>
61+
<outputDirectory>lib</outputDirectory>
62+
</configuration>
63+
</execution>
64+
</executions>
65+
</plugin>
5066
</plugins>
5167
</build>
5268
</project>

src/main/resources/archetype-resources/src/main/java/__packageInPathFormat__/Application.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import org.tinystruct.AbstractApplication;
44
import org.tinystruct.system.annotation.Action;
5-
import org.tinystruct.system.annotation.Argument;
65

7-
@Action(value = "", description = "Sample tinystruct application", mode = org.tinystruct.system.annotation.Action.Mode.CLI)
6+
@Action(value = "", description = "Sample tinystruct application", mode = Action.Mode.CLI)
87
public class Application extends AbstractApplication {
98

109
@Action(value = "hello", description = "Say hello")
@@ -17,4 +16,14 @@ public String sayHello() {
1716
public String help() {
1817
return super.help();
1918
}
19+
20+
@Override
21+
public void init() {
22+
23+
}
24+
25+
@Override
26+
public String version() {
27+
return "";
28+
}
2029
}

src/main/resources/archetype-resources/src/test/java/__packageInPathFormat__/ApplicationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ${package};
1+
package ${packageName};
22

33
import org.junit.jupiter.api.Test;
44
import static org.junit.jupiter.api.Assertions.*;

0 commit comments

Comments
 (0)