diff --git a/util/maven/profile.go b/util/maven/profile.go
index c4e9d54..26c4771 100644
--- a/util/maven/profile.go
+++ b/util/maven/profile.go
@@ -27,6 +27,7 @@ type Profile struct {
ID String `xml:"id,omitempty"`
Activation Activation `xml:"activation,omitempty"`
Properties Properties `xml:"properties,omitempty"`
+ Modules []String `xml:"modules>module,omitempty"`
DependencyManagement DependencyManagement `xml:"dependencyManagement,omitempty"`
Dependencies []Dependency `xml:"dependencies>dependency,omitempty"`
Repositories []Repository `xml:"repositories>repository,omitempty"`
@@ -201,6 +202,7 @@ func (p *Project) MergeProfiles(jdk string, os ActivationOS) (err error) {
p.DependencyManagement.merge(prof.DependencyManagement)
p.Dependencies = append(p.Dependencies, prof.Dependencies...)
p.Repositories = append(p.Repositories, prof.Repositories...)
+ p.Modules = append(p.Modules, prof.Modules...)
}
return
}
diff --git a/util/maven/profile_test.go b/util/maven/profile_test.go
index 7a70a63..e29bfb7 100644
--- a/util/maven/profile_test.go
+++ b/util/maven/profile_test.go
@@ -62,6 +62,10 @@ func TestProfile(t *testing.T) {
ArtifactID: "def",
Version: "${def.version}",
}},
+ Modules: []String{
+ "module-a",
+ "module-b",
+ },
}, {
ID: "my-profile-2",
Activation: Activation{
@@ -362,6 +366,7 @@ func TestMergeProfiles(t *testing.T) {
{Name: "abc.version", Value: "1.0.0"},
},
},
+ Modules: []String{"default-module"},
Profiles: []Profile{{
// Not activated
Activation: Activation{
@@ -378,6 +383,7 @@ func TestMergeProfiles(t *testing.T) {
{Name: "abc.version", Value: "9.9.9"},
},
},
+ Modules: []String{"module-not-activated"},
}, {
// Activated
Activation: Activation{
@@ -395,6 +401,7 @@ func TestMergeProfiles(t *testing.T) {
{Name: "abc.version", Value: "2.0.0"},
},
},
+ Modules: []String{"module-activated-1", "module-activated-2"},
}, {
// Activated
Activation: Activation{
@@ -419,6 +426,7 @@ func TestMergeProfiles(t *testing.T) {
{Name: "abc.version", Value: "3.0.0"},
},
},
+ Modules: []String{"module-activated-3"},
}},
}
proj.MergeProfiles(JDKProfileActivation, OSProfileActivation)
@@ -447,6 +455,7 @@ func TestMergeProfiles(t *testing.T) {
{Name: "abc.version", Value: "3.0.0"},
},
},
+ Modules: []String{"default-module", "module-activated-1", "module-activated-2", "module-activated-3"},
}
proj.Profiles = nil
if diff := cmp.Diff(proj, want); diff != "" {
diff --git a/util/maven/testdata/profiles.xml b/util/maven/testdata/profiles.xml
index aa81e42..6187b84 100644
--- a/util/maven/testdata/profiles.xml
+++ b/util/maven/testdata/profiles.xml
@@ -51,6 +51,10 @@
${def.version}
+
+ module-a
+ module-b
+
my-profile-2