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.
170 lines
3.7 KiB
Markdown
170 lines
3.7 KiB
Markdown
---
|
|
name: generate-project
|
|
description: Generate Maven or Gradle project structure for Java projects. Use when user wants to create build configuration, organize source directories, or set up dependency management.
|
|
version: 1.0.0
|
|
---
|
|
|
|
# Project Structure Generation
|
|
|
|
This skill generates Maven/Gradle project structure and configuration.
|
|
|
|
## When to Use
|
|
|
|
- User has decompiled code and needs proper project structure
|
|
- User wants Maven/Gradle build configuration
|
|
- User needs dependency management setup
|
|
- User wants to organize code into standard directories
|
|
|
|
## Maven Project Generation
|
|
|
|
### Step 1: Create Directory Structure
|
|
|
|
```bash
|
|
bash C:/Users/K/.claude/plugins/cache/claude-plugins-official/plugin-dev/9eae436aa296/scripts/create-structure.sh <project_dir> <base_package>
|
|
```
|
|
|
|
This creates:
|
|
```
|
|
project/
|
|
├── src/
|
|
│ ├── main/
|
|
│ │ ├── java/<package>/
|
|
│ │ ├── resources/
|
|
│ │ └── webapp/WEB-INF/
|
|
│ └── test/
|
|
│ ├── java/<package>/
|
|
│ └── resources/
|
|
├── lib/
|
|
└── .gitignore
|
|
```
|
|
|
|
### Step 2: Generate pom.xml
|
|
|
|
```bash
|
|
bash C:/Users/K/.claude/plugins/cache/claude-plugins-official/plugin-dev/9eae436aa296/scripts/generate-pom.sh <project_dir> <group_id> <artifact_id>
|
|
```
|
|
|
|
The script auto-detects frameworks:
|
|
- Spring
|
|
- Struts
|
|
- iBatis
|
|
- Hibernate
|
|
- Axis Web Services
|
|
|
|
### Step 3: Move Decompiled Code
|
|
|
|
```bash
|
|
# Move decompiled Java files
|
|
cp -r decompiled/src/* project/src/main/java/
|
|
|
|
# Move resources
|
|
cp -r decompiled/resources/* project/src/main/resources/
|
|
|
|
# Move web files
|
|
cp -r decompiled/webapp/* project/src/main/webapp/
|
|
```
|
|
|
|
### Step 4: Install Dependencies
|
|
|
|
```bash
|
|
# Install Oracle JDBC manually
|
|
mvn install:install-file \
|
|
-Dfile=lib/ojdbc14.jar \
|
|
-DgroupId=com.oracle \
|
|
-DartifactId=ojdbc14 \
|
|
-Dversion=10.2.0.4 \
|
|
-Dpackaging=jar
|
|
|
|
# Resolve dependencies
|
|
mvn dependency:resolve
|
|
```
|
|
|
|
## Gradle Alternative
|
|
|
|
For Gradle projects:
|
|
|
|
### build.gradle
|
|
|
|
```groovy
|
|
plugins {
|
|
id 'java'
|
|
id 'war'
|
|
}
|
|
|
|
group = 'com.example'
|
|
version = '1.0.0'
|
|
|
|
sourceCompatibility = '1.8'
|
|
targetCompatibility = '1.8'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
flatDir { dirs 'lib' }
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'javax.servlet:javax.servlet-api:3.1.0'
|
|
implementation 'org.springframework:spring-context:3.2.18.RELEASE'
|
|
implementation 'org.springframework:spring-web:3.2.18.RELEASE'
|
|
// Add more as detected
|
|
|
|
testImplementation 'junit:junit:4.12'
|
|
}
|
|
|
|
war {
|
|
archiveName = 'app.war'
|
|
}
|
|
```
|
|
|
|
## Framework-Specific Configuration
|
|
|
|
### Spring
|
|
|
|
Add to `src/main/webapp/WEB-INF/web.xml`:
|
|
|
|
```xml
|
|
<context-param>
|
|
<param-name>contextConfigLocation</param-name>
|
|
<param-value>/WEB-INF/applicationContext.xml</param-value>
|
|
</context-param>
|
|
|
|
<listener>
|
|
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
|
</listener>
|
|
```
|
|
|
|
### Struts
|
|
|
|
Add to `src/main/webapp/WEB-INF/web.xml`:
|
|
|
|
```xml
|
|
<filter>
|
|
<filter-name>struts2</filter-name>
|
|
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
|
|
</filter>
|
|
<filter-mapping>
|
|
<filter-name>struts2</filter-name>
|
|
<url-pattern>/*</url-pattern>
|
|
</filter-mapping>
|
|
```
|
|
|
|
## Validation
|
|
|
|
After generation:
|
|
|
|
1. Check pom.xml has all required dependencies
|
|
2. Verify directory structure matches package names
|
|
3. Ensure resources are in correct locations
|
|
4. Test compilation with `mvn compile`
|
|
5. Fix any missing dependencies
|
|
|
|
## Common Issues
|
|
|
|
| Issue | Solution |
|
|
|-------|----------|
|
|
| Missing dependency | Add to pom.xml manually |
|
|
| Package mismatch | Move files to correct directories |
|
|
| Resource not found | Check src/main/resources |
|
|
| Web config missing | Copy from original WEB-INF |
|
|
| Oracle JDBC | Install manually to local repo |
|