You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.0 KiB
Bash

#!/bin/bash
# Create standard Maven project structure
# Usage: ./create-structure.sh <project_dir> <base_package>
set -e
PROJECT_DIR="${1:?Usage: create-structure.sh <project_dir> <base_package>}"
BASE_PACKAGE="${2:-com.example}"
# Convert package to path
PACKAGE_PATH=$(echo "$BASE_PACKAGE" | tr '.' '/')
echo "Creating Maven project structure..."
echo " Project: $PROJECT_DIR"
echo " Package: $BASE_PACKAGE"
# Create standard directories
mkdir -p "$PROJECT_DIR/src/main/java/$PACKAGE_PATH"
mkdir -p "$PROJECT_DIR/src/main/resources"
mkdir -p "$PROJECT_DIR/src/main/webapp/WEB-INF"
mkdir -p "$PROJECT_DIR/src/test/java/$PACKAGE_PATH"
mkdir -p "$PROJECT_DIR/src/test/resources"
mkdir -p "$PROJECT_DIR/lib"
# Create placeholder files
touch "$PROJECT_DIR/src/main/java/$PACKAGE_PATH/.gitkeep"
touch "$PROJECT_DIR/src/main/resources/.gitkeep"
touch "$PROJECT_DIR/src/test/java/$PACKAGE_PATH/.gitkeep"
touch "$PROJECT_DIR/src/test/resources/.gitkeep"
# Create .gitignore
cat > "$PROJECT_DIR/.gitignore" << 'EOF'
# Compiled class files
*.class
# Log files
*.log
# Package files
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
# Build directories
target/
build/
out/
# IDE files
.idea/
*.iml
*.iws
*.ipr
.project
.classpath
.settings/
.factorypath
.vscode/
*.swp
*.swo
# OS files
.DS_Store
Thumbs.db
# Maven
.mvn/
mvnw
mvnw.cmd
# Gradle
.gradle/
gradlew
gradlew.cmd
EOF
echo "Structure created:"
echo " $PROJECT_DIR/"
echo " ├── src/"
echo " │ ├── main/"
echo " │ │ ├── java/$PACKAGE_PATH/"
echo " │ │ ├── resources/"
echo " │ │ └── webapp/WEB-INF/"
echo " │ └── test/"
echo " │ ├── java/$PACKAGE_PATH/"
echo " │ └── resources/"
echo " ├── lib/"
echo " ├── .gitignore"
echo " └── pom.xml (run generate-pom.sh to create)"
echo ""
echo "Next steps:"
echo " 1. Run decompile.sh to decompile class files"
echo " 2. Move decompiled .java files to src/main/java/"
echo " 3. Copy resources to src/main/resources/"
echo " 4. Run generate-pom.sh to create pom.xml"