Repository navigation
Expand file tree
/
Copy pathpom.xml
More file actions
189 lines (175 loc) · 6.28 KB
/
Copy pathpom.xml
File metadata and controls
189 lines (175 loc) · 6.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<!--
SPDX-FileCopyrightText: 2026 Bernard Ladenthin <bernard.ladenthin@gmail.com>
SPDX-License-Identifier: MIT
-->
<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>
<!--
Aggregator / parent POM. Carries no code — it only groups the modules and holds the
single shared <version>, which every module inherits (so the core net.ladenthin:llama
and net.ladenthin:llama-langchain4j always ship in lockstep by construction). The core
artifact keeps its coordinates net.ladenthin:llama (the `llama` module); consumers are
unaffected by the directory move.
-->
<groupId>net.ladenthin</groupId>
<artifactId>llama-parent</artifactId>
<version>5.2.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<description>Aggregator POM for java-llama.cpp: the native JNI binding
(net.ladenthin:llama) and its sibling integrations.</description>
<url>https://github.com/bernardladenthin/java-llama.cpp</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://www.opensource.org/licenses/mit-license.php</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>Bernard Ladenthin</name>
<organizationUrl>https://github.com/bernardladenthin</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/bernardladenthin/java-llama.cpp.git</connection>
<developerConnection>scm:git:https://github.com/bernardladenthin/java-llama.cpp.git</developerConnection>
<url>https://github.com/bernardladenthin/java-llama.cpp/tree/main</url>
</scm>
<distributionManagement>
<snapshotRepository>
<id>central</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<properties>
<!--
The Jackson line, stated once for every module. `llama` uses jackson-databind directly;
`llama-langchain4j` gets jackson transitively through langchain4j-core, which pulled an
older jackson-core past a published advisory (two HIGH Dependabot alerts, 2026-10-11)
because nothing managed it there. The BOM import below pins the whole family for every
module, so a transitive jackson can no longer be older than this.
-->
<jackson.version>2.22.3</jackson.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>llama</module>
<module>llama-langchain4j</module>
<module>llama-kotlin</module>
<module>llama-platform</module>
</modules>
<build>
<!--
The plugin versions more than one module uses, stated once. Every module inherits them, so a
module names such a plugin without a version; a plugin only one module uses stays pinned in
that module. Without this a module that does not pin, say, maven-jar-plugin builds with the
default of whatever Maven runs the build: a different version locally and in CI.
-->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.11.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.16.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.6.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<!--
Reactor-wide release profile. Inherited by every module (llama, llama-langchain4j)
AND applied to this parent pom itself, so a single `mvn -P release deploy` GPG-signs
all artifacts (including the parent .pom, which Central requires) and routes the whole
reactor through the Central Publishing plugin as one deployment. Activated only by the
publish-snapshot / publish-release CI jobs. Their versions come from the pluginManagement
above.
-->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<!-- validated: wait only for portal validation (where real errors surface), not the slow server-side publish; autoPublish completes it -->
<waitUntil>validated</waitUntil>
<!-- seconds; generous headroom for the validation poll (default 1800) -->
<waitMaxTime>21600</waitMaxTime>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>