2015-03-25 6 views
7

मैंने जैक्सर्स सर्वर साइड क्लासेस और क्लाइंट साइड जावा क्लास जेनरेट करने के लिए स्वैगर कोडजेन का उपयोग किया।स्वैगर कोडजन जेनरेट की गई फाइलों में मेरे कस्टम कोड को ओवरराइट कर रहा है

यह आदेश मैं वर्गों enter code here

java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar -i /Users/me/Workspace/swagger-codegen/samples/yaml/echo.yaml -l jaxrs -o samples/server/echo/java 

सर्वर कोड उत्पन्न हुए उस एक स्थान धारक मेरे "जादू" लिखना पड़ा उत्पन्न करने के लिए प्रयोग किया जाता है।

public Response echo(@ApiParam(value = "" )@HeaderParam("headerParam") String headerParam, 
    @ApiParam(value = "",required=true) @QueryParam("message") String message) 
     throws NotFoundException { 
     // do some magic! 
     return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); 
    } 

मैंने "गूंज" विधि में "जादू" जोड़ा और कोड को फिर से उत्पन्न किया, केवल इसे बाहर निकालने के लिए। कस्टम कोड खोने से बचने का एक तरीका है कक्षा के बजाय इंटरफेस उत्पन्न करने के लिए कोडेजन टेम्पलेट को संशोधित करना। तब मेरे पास लागू वर्ग में सभी कस्टम कोड हो सकते हैं।

मैं यह पता लगाने की कोशिश कर रहा हूं कि कोड को पुन: उत्पन्न करने के बाद भी कस्टम "जादू" को संरक्षित किया जा सकता है या कक्षाओं के बजाय इंटरफेस उत्पन्न करने के लिए टेम्पलेट को बदलने से बेहतर स्थिति है।

+0

भी देखें http://grokbase.com/t/gg/swagger-swaggersocket/153s7d49nr/codegen-is-overwriting-my-code –

उत्तर

1

Swagger Codegen के नवीनतम मास्टर आप फ़ाइलों नहीं में ओवरराइट किया जा करने के लिए निर्दिष्ट कर सकते हैं .swagger-codegen-उपेक्षा (.gitignore के समान) कोड पीढ़ी के दौरान।

कृपया कोशिश करने के लिए स्वैगर कोडेजन का नवीनतम मास्टर खींचें।

अद्यतन: स्थिर संस्करण v2.2.2 जारी किया गया है। अधिक जानकारी के लिए विज्ञप्ति जारी की टिप्पणी का संदर्भ लें: https://github.com/swagger-api/swagger-codegen/releases/tag/v2.2.2

+1

नया क्या विलय की अपने कार्यप्रवाह है फ़ाइलों को जोड़ने के बाद endpoint बॉयलरप्लेट कोड। swagger-codegen-ignore? –

संबंधित मुद्दे