Ensure Maven working directory is kept until after the integration is run.
diff --git a/pkg/builder/runtime/quarkus.go b/pkg/builder/runtime/quarkus.go
index a98faba..dbc3e33 100644
--- a/pkg/builder/runtime/quarkus.go
+++ b/pkg/builder/runtime/quarkus.go
@@ -259,5 +259,14 @@
Checksum: "sha1:" + runnerChecksum,
})
+ // currentpath, errr := os.Getwd()
+ // if errr != nil {
+ // return nil, errr
+ // }
+ // _, err = util.CopyFile(path.Join(mc.Path, "target", runner), path.Join(currentpath, runner))
+ // if err != nil {
+ // return nil, err
+ // }
+
return artifacts, nil
}
diff --git a/pkg/cmd/inspect.go b/pkg/cmd/inspect.go
index e524e56..9967cfd 100644
--- a/pkg/cmd/inspect.go
+++ b/pkg/cmd/inspect.go
@@ -40,9 +40,15 @@
if err := options.validate(args); err != nil {
return err
}
+ if err := options.init(); err != nil {
+ return err
+ }
if err := options.run(args); err != nil {
fmt.Println(err.Error())
}
+ if err := options.deinit(); err != nil {
+ return err
+ }
return nil
},
@@ -71,6 +77,10 @@
return validateIntegrationForDependencies(args, command.AdditionalDependencies)
}
+func (command *inspectCmdOptions) init() error {
+ return createMavenWorkingDirectory()
+}
+
func (command *inspectCmdOptions) run(args []string) error {
// Fetch dependencies.
dependencies, err := getDependencies(args, command.AdditionalDependencies, command.AllDependencies)
@@ -86,3 +96,7 @@
return nil
}
+
+func (command *inspectCmdOptions) deinit() error {
+ return deleteMavenWorkingDirectory()
+}
diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index a76daa3..2031e52 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -38,9 +38,15 @@
if err := options.validate(args); err != nil {
return err
}
+ if err := options.init(); err != nil {
+ return err
+ }
if err := options.run(args); err != nil {
fmt.Println(err.Error())
}
+ if err := options.deinit(); err != nil {
+ return err
+ }
return nil
},
@@ -87,6 +93,10 @@
return nil
}
+func (command *localRunCmdOptions) init() error {
+ return createMavenWorkingDirectory()
+}
+
func (command *localRunCmdOptions) run(args []string) error {
// Fetch dependencies.
dependencies, err := getDependencies(args, command.AdditionalDependencies, true)
@@ -108,3 +118,7 @@
return nil
}
+
+func (command *localRunCmdOptions) deinit() error {
+ return deleteMavenWorkingDirectory()
+}
diff --git a/pkg/cmd/util_dependencies.go b/pkg/cmd/util_dependencies.go
index 49d0d07..cd29a3e 100644
--- a/pkg/cmd/util_dependencies.go
+++ b/pkg/cmd/util_dependencies.go
@@ -35,6 +35,10 @@
"github.com/scylladb/go-set/strset"
)
+// Directory used by Maven for an invocation of the kamel local command.
+// By default a temporary folder will be used.
+var mavenWorkingDirectory string = ""
+
var acceptedDependencyTypes = []string{"bom", "camel", "camel-k", "camel-quarkus", "mvn", "github"}
const defaultDependenciesDirectoryName = "dependencies"
@@ -112,14 +116,8 @@
return nil, err
}
- // Create local Maven context.
- temporaryDirectory, err := ioutil.TempDir(os.TempDir(), "maven-")
- if err != nil {
- return nil, err
- }
-
// Maven local context to be used for generating the transitive dependencies.
- mc := maven.NewContext(temporaryDirectory, project)
+ mc := maven.NewContext(mavenWorkingDirectory, project)
mc.LocalRepository = mvn.LocalRepository
mc.Timeout = mvn.GetTimeout().Duration
@@ -150,9 +148,6 @@
transitiveDependencies = append(transitiveDependencies, entry.Location)
}
- // Remove directory used for computing the dependencies.
- defer os.RemoveAll(temporaryDirectory)
-
return transitiveDependencies, nil
}
@@ -301,3 +296,23 @@
return nil
}
+
+func createMavenWorkingDirectory() error {
+ // Create local Maven context.
+ temporaryDirectory, err := ioutil.TempDir(os.TempDir(), "maven-")
+ if err != nil {
+ return err
+ }
+
+ // Set the Maven directory to the default value.
+ mavenWorkingDirectory = temporaryDirectory
+
+ return nil
+}
+
+func deleteMavenWorkingDirectory() error {
+ // Remove directory used for computing the dependencies.
+ defer os.RemoveAll(mavenWorkingDirectory)
+
+ return nil
+}