class Mvnizer::Command::NewProject

Public Instance Methods

get_dependencies() click to toggle source

Returns the list of dependencies to be added for this type of project. Override this method if extra dependencies are needed.

# File lib/mvnizer/commands/new_project.rb, line 44
def get_dependencies
  []
end
run(project) click to toggle source

Creates the Maven project structure, and creates the pom file from the options

# File lib/mvnizer/commands/new_project.rb, line 9
def run(project)

  create_dir("#{project.artifact_id}/src/main/java",
             "#{project.artifact_id}/src/test/java")

  coordinate_parser = CoordinateParser.new
  get_dependencies.each { |d| project.add_dependency(coordinate_parser.parse_scoped_coordinates(d)) }

  generate_file(File.join(TEMPLATE_DIR, "pom.xml.erb"),
                "#{project.artifact_id}/pom.xml",
                project)
  generate_file(File.join(TEMPLATE_DIR, "gitignore.erb"),
                "#{project.artifact_id}/.gitignore",
                project)
  generate_file(File.join(TEMPLATE_DIR, "editorconfig.erb"),
                "#{project.artifact_id}/.editorconfig",
                project)

  if project.main
    target_directory = project.package_name.gsub(/\./, File::SEPARATOR)
    generate_file(File.join(TEMPLATE_DIR, "Main.java.erb"),
                  "#{project.artifact_id}/src/main/java/#{target_directory}/#{project.main}.java",
                  project)
  end

  if project.docker
    generate_file(File.join(TEMPLATE_DIR, "Dockerfile.erb"),
                  "#{project.artifact_id}/Dockerfile",
                  project)
  end

end