-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpom.xml
187 lines (176 loc) · 6.96 KB
/
pom.xml
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
<?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>org.example</groupId>
<artifactId>ios_graalvm</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<graalvm.sdk.version>22.1.0</graalvm.sdk.version>
<graalvm.maven.version>21.2.0</graalvm.maven.version>
<graalvm.image.name>java</graalvm.image.name>
<graalvm.main.class>rsocket_test.Test</graalvm.main.class>
<ios.xcode.platform>iphoneos</ios.xcode.platform>
<ios.arch>arm64-ios</ios.arch>
<ios.target.arch>arm64</ios.target.arch>
<ios.graal.platform>IOS_AARCH64</ios.graal.platform>
<ios.temp.path>tmp${ios.arch}</ios.temp.path>
<capcache.version>22.1</capcache.version>
<cap.cache.dir>${project.basedir}/capcache-${capcache.version}</cap.cache.dir>
<!-- <log4j2.version>2.17.0</log4j2.version>-->
<rsocket.version>1.1.1</rsocket.version>
</properties>
<!-- <dependencyManagement>-->
<dependencies>
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>${graalvm.sdk.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.rsocket</groupId>
<artifactId>rsocket-core</artifactId>
<version>${rsocket.version}</version>
</dependency>
<dependency>
<groupId>io.rsocket</groupId>
<artifactId>rsocket-transport-netty</artifactId>
<version>${rsocket.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
<version>5.8.2</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.19.0</version>
</dependency>
</dependencies>
<!-- </dependencyManagement>-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<parameters>true</parameters>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>graal-ios</id>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.nativeimage</groupId>
<artifactId>native-image-maven-plugin</artifactId>
<version>${graalvm.maven.version}</version>
<executions>
<execution>
<goals>
<goal>native-image</goal>
</goals>
<phase>package</phase>
<configuration>
<skip>false</skip>
<imageName>${graalvm.image.name}</imageName>
<!-- # https://chriswhocodes.com/graalvm_native_image_ce_jdk11_options.html -->
<buildArgs>
--allow-incomplete-classpath <!-- todo: check is it necessary for SPRING framework ? -->
--initialize-at-build-time=org.apache.log4j.Logger
<!-- --initialize-at-build-time=org.apache.logging.slf4j.Log4jLogger-->
--initialize-at-build-time=org.slf4j.LoggerFactory
--initialize-at-build-time=org.slf4j.simple.SimpleLogger
--initialize-at-build-time=org.slf4j.impl.StaticLoggerBinder
--initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger
--initialize-at-run-time=io.netty.util.AbstractReferenceCounted
--initialize-at-run-time=io.netty.channel.epoll
--initialize-at-run-time=io.netty.handler.ssl
--initialize-at-run-time=io.netty.channel.unix
--no-fallback
--verbose
-H:DashboardDump=dashboard
-H:+DashboardAll
--enable-https
-Djdk.internal.lambda.eagerlyInitialize=false
-H:+SharedLibrary
-H:CompilerBackend=llvm
--features=org.graalvm.home.HomeFinderFeature
-H:+ExitAfterRelocatableImageWrite
-H:+ReportExceptionStackTraces
-H:-DeadlockWatchdogExitOnTimeout
-H:DeadlockWatchdogInterval=0
-H:TempDirectory=${ios.temp.path}
-H:-SpawnIsolates
-H:PageSize=16384
-H:+UseCAPCache
-H:CAPCacheDir=${cap.cache.dir}
-H:LLVMMaxFunctionsPerBatch=0
-Dsvm.targetName=iOS
-Dsvm.targetArch=${ios.target.arch}
-Dsvm.platform=org.graalvm.nativeimage.Platform$${ios.graal.platform}
${graalvm.main.class}
</buildArgs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>delete-old-SVM</id>
<goals>
<goal>exec</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<executable>/bin/rm</executable>
<arguments>
<argument>-rf</argument>
<argument>${project.build.directory}/${ios.temp.path}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>