Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-archetype-initializer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tools
schbrain-archetype-initializer
Commits
40385cce
Commit
40385cce
authored
Mar 20, 2022
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update maven settings
parent
acdc46ce
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
3 deletions
+29
-3
initializer-backend/src/main/java/com/schbrain/archetype/initializer/maven/MavenUtils.java
.../com/schbrain/archetype/initializer/maven/MavenUtils.java
+29
-3
No files found.
initializer-backend/src/main/java/com/schbrain/archetype/initializer/maven/MavenUtils.java
View file @
40385cce
...
...
@@ -6,8 +6,13 @@ import com.schbrain.archetype.initializer.param.ArchetypeGenerateParam;
import
com.schbrain.common.util.JacksonUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.maven.cli.MavenCli
;
import
org.apache.maven.settings.Mirror
;
import
org.apache.maven.settings.Settings
;
import
org.apache.maven.settings.io.DefaultSettingsWriter
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.Collections
;
import
static
org
.
apache
.
maven
.
cli
.
MavenCli
.
MULTIMODULE_PROJECT_DIRECTORY
;
...
...
@@ -18,7 +23,9 @@ import static org.apache.maven.cli.MavenCli.MULTIMODULE_PROJECT_DIRECTORY;
@Slf4j
public
class
MavenUtils
{
public
static
File
generate
(
ArchetypeGenerateParam
param
)
{
private
static
final
File
SETTINGS_FILE
=
new
File
(
MavenCli
.
USER_MAVEN_CONFIGURATION_HOME
,
"settings.xml"
);
public
static
File
generate
(
ArchetypeGenerateParam
param
)
throws
IOException
{
log
.
info
(
"Prepare to generate archetype project: {}"
,
JacksonUtils
.
toJsonString
(
param
,
true
));
MavenCli
mavenCli
=
new
MavenCli
();
...
...
@@ -26,15 +33,33 @@ public class MavenUtils {
File
archetype
=
getArchetypeDirectory
(
param
.
getArtifact
());
String
outputDirectory
=
archetype
.
getAbsolutePath
();
String
[]
args
=
getArgs
(
param
,
outputDirectory
);
File
settingsFile
=
getSettingsFile
();
String
[]
args
=
getArgs
(
param
,
settingsFile
.
getAbsolutePath
(),
outputDirectory
);
System
.
getProperties
().
setProperty
(
MULTIMODULE_PROJECT_DIRECTORY
,
"$M2_HOME"
);
mavenCli
.
doMain
(
args
,
null
,
System
.
out
,
System
.
err
);
log
.
info
(
"Generate archetype project at {}"
,
outputDirectory
);
return
ZipUtil
.
zip
(
archetype
);
}
private
static
File
getSettingsFile
()
throws
IOException
{
if
(
SETTINGS_FILE
.
exists
())
{
return
SETTINGS_FILE
;
}
Settings
settings
=
new
Settings
();
Mirror
mirror
=
new
Mirror
();
mirror
.
setUrl
(
"https://maven.aliyun.com/repository/public"
);
settings
.
addMirror
(
mirror
);
DefaultSettingsWriter
settingsWriter
=
new
DefaultSettingsWriter
();
settingsWriter
.
write
(
SETTINGS_FILE
,
Collections
.
emptyMap
(),
settings
);
return
SETTINGS_FILE
;
}
private
static
File
getArchetypeDirectory
(
String
artifactId
)
{
String
tmpDirPath
=
FileUtil
.
getTmpDirPath
();
File
archetype
=
new
File
(
tmpDirPath
,
artifactId
);
...
...
@@ -44,13 +69,14 @@ public class MavenUtils {
}
@SuppressWarnings
(
"SpellCheckingInspection"
)
private
static
String
[]
getArgs
(
ArchetypeGenerateParam
param
,
String
outputDirectory
)
{
private
static
String
[]
getArgs
(
ArchetypeGenerateParam
param
,
String
settingsFile
,
String
outputDirectory
)
{
return
new
String
[]{
"-B"
,
"archetype:generate"
,
"-DarchetypeGroupId=com.schbrain.kp"
,
"-DarchetypeArtifactId=schbrain-archetype"
,
"-DarchetypeVersion=1.0-SNAPSHOT"
,
String
.
format
(
"-gs=%s"
,
settingsFile
),
String
.
format
(
"-DoutputDirectory=%s"
,
outputDirectory
),
String
.
format
(
"-DgroupId=%s"
,
param
.
getGroup
()),
String
.
format
(
"-DartifactId=%s"
,
param
.
getArtifact
()),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment